Verilog HDL数字设计教程 作者 贺敬凯 全书 第8章 CPU结构及其设计.pptVIP

  • 2
  • 0
  • 约8.51千字
  • 约 28页
  • 2017-10-06 发布于广东
  • 举报

Verilog HDL数字设计教程 作者 贺敬凯 全书 第8章 CPU结构及其设计.ppt

第8章 CPU结构及其设计 8.1 专用处理器顶层系统设计 8.2 专用处理器的设计实现 8.3 专用处理器的仿真验证 8.4 小结 8.1 专用处理器顶层系统设计 专用处理器的组成结构 专用处理器的功能 指令系统的设计 指令系统的设计 8.2 专用处理器的设计实现 顶层系统设计 顶层系统设计 基本部件设计 基本部件设计 基本部件设计 基本部件设计 基本部件设计 基本部件设计 基本部件设计 基本部件设计 基本部件设计 8.3 专用处理器的仿真验证 8.3 专用处理器的仿真验证 8.3 专用处理器的仿真验证 8.3 专用处理器的仿真验证 8.3 专用处理器的仿真验证 8.3 专用处理器的仿真验证 8.3 专用处理器的仿真验证 P239 T1、2、4 * * 在线教务辅导网: 教材其余课件及动画素材请查阅在线教务辅导网 QQ:349134187 或者直接输入下面地址: 1 专用处理器的组成结构 2 专用处理器的功能 3 指令系统的设计 图8-1 专用处理器结构框图 设计要求: 本专用处理器可通过编程来完成自然数求和的功能,并将计算结果存储于数据存储器RAM中。 例如完成:0+1+2+…+10=?。完成该功能的算法用C语言表示,如例8-1。 【例8-1】 C语言描述的功能 int total = 0; for (int i=10; i!=0; i--) total += i; next instructions... 图8-2 简单指令集 【例8-2】 汇编语言描述 0 MOV R0,#0; //total=0 1 MOV R1,#10; //i=10 2 MOV R2,#1; //常数1 3 MOV R3,#0; //常数0 Loop: JZ R1,NEXT; //如果i=0,则完成 5 ADD R0,R1; //total+=i 6 SUB R1,R2; //i-- 7 JZ R3,Loop //不为零则跳转 NEXT: MOV 10H,R0 //将结果存放在RAM的地址10H处 HERE: HALT //停在这里 【例8-3】 机器码描述 memory[0]=10b0011_00_0000; //MOV R0,#0; memory[1]=10b0011_01_1010; //MOV R1,#10; memory[2]=10b0011_10_0001; //MOV R2,#1; memory[3]=10b0011_11_0000; //MOV R3,#0; memory[4]=10b0110_01_1000; // JZ R1,NEXT; memory[5]=10b0100_00_0100; //ADD R0,R1; memory[6]=10b0101_01_1000; //SUB R1,R2; memory[7]=10b0110_11_0100; //JZ R3,Loop memory[8]=10b1000_00_1010; //MOV 10H,R0 memory[9]=10b1111_00_1001; //halt for(i=10;i(2**N);i=i+1) //存储器其余地址存放0 memory[i] = 0; 顶层系统设计 基本部件设计 图8-3 专用处理器实现框图 图8-4 数据路径部分实现框图 【例8-4】 ALU:数据逻辑单元 module alu(clk,en,sel,in1,in2,out,alu_zero); input en,clk; input[1:0] sel; input[7:0] in1,in2; output reg[7:0] out; output reg alu_zero; always @(posedge clk) begin if(en) case(sel) 2b00: out=in1; 2b01: if(in1==0) alu_zero=1; else alu_zero=0; 2b10: out=in1+in2; 2b11: out=in1-in2; endcase end endmodule 【例8-5】寄存器 module register(clk,en,in,out); input clk,en; input[7:0] in; output reg[7

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档