- 1、本文档共88页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
verilog CPU设计
17.3.9 外围模块(RAM) module addr_decode(addr,rom_sel,ram_sel); output rom_sel,ram_sel; input [12:0]addr; reg rom_sel,ram_sel; always @(addr) casex(addr) 13b1_1xxx_xxxx_xxxx:{rom_sel,ram_sel}=2b01; 13b0_xxxx_xxxx_xxxx:{rom_sel,ram_sel}=2b10; 13b1_0xxx_xxxx_xxxx:{rom_sel,ram_sel}=2b10; default:{rom_sel,ram_sel}=2b00; endcase endmodule 17.3.9 外围模块(ROM) module rom(data,addr,read,ena); output [7:0]data; input [12:0]addr; input ena,read; reg [7:0]mem[13h1fff:0]; assign data=(readena)?mem[addr]:8hzz; endmodule 17.4 RISC_CPU操作和时序 主要操作: 系统的复位和启动操作 总线读操作 总线写操作 17.4.1 系统的复位和启动操作 复位状态reset=1: CPU内部寄存器全为零 数据总线为高阻状态 地址总线为0000H 所有控制信号为无效状态 启动状态reset=0: fetch上升沿启动CPU开始工作 从ROM的000处读指令并执行 17.4.2 总线读操作 复位状态reset=1: CPU内部寄存器全为零 数据总线为高阻状态 地址总线为0000H 所有控制信号为无效状态 启动状态reset=0: fetch上升沿启动CPU开始工作 从ROM的000处读指令并执行 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 高8位 低8位 地址码 指令码 17.5 RISC_CPU 寻址方式和指令系统 指令数目:8条 地址空间:213=8K 17.5 RISC_CPU 寻址方式和指令系统 直接寻址方式 数据放在存储器中,寻址单元的地址由指令直接给出。 LDA 010FH 8EH 00H 77H 56H EDH FFH FFH 00H 010FH 010EH 010DH 010CH 56H 1 0 1 0 0 0 0 1 0 0 0 0 1 1 1 1 地址码 指令码 17.5 RISC_CPU 寻址方式和指令系统 HLT: 停机操作 该操作空一个指令周期,即8个时钟 SKZ: 为零跳过下一条语句 累加器结果为零,跳过下一语句; 累加器结果不为零,顺序执行。 ADD: 相加 累加器的值+地址所知的存储器中的数据,结果送回累加器。 17.5 RISC_CPU 寻址方式和指令系统 ANDD: 相与 累加器的值地址所知的存储器中的数据,结果送回累加器。 XORR: 相异或 累加器的值^地址所知的存储器中的数据,结果送回累加器。 LDA: 读数据 地址所知的存储器中的数据送累加器。 17.5 RISC_CPU 寻址方式和指令系统 STO: 写数据 累加器中的数据送地址所指的存储器中 JMP: 无条件跳转语句 该操作跳转至指令给出的目的地址,继续执行。 累加器 指令寄存器 算逻单元 数据控制 地址选择 程序计数器 控制状态机 时钟信号 AB DB rd load_acc fetch inc_pc load_ir alu_ena data load_ir rd inc_pc alu_ena fetch clk 0 1 2 3 4 5 6 7 LDA 1000 B0 00 EE 01 1000 1001 RAM EE load_acc address 0000 0001 1000 B0 00 0000 0001 ROM 00 0002 0002 累加器 指令寄存器 算逻单元 数据控制 地址选择 程序计数器 控制状态机 时钟信号 AB DB rd load_acc fetch inc_pc load_ir alu_ena data load_ir rd inc_pc alu_ena fetch clk 0 1 2 3 4 5 6 7 ADD 1001 50 01 EE 11 1000 1001 RAM 11 load_acc address 0002 0003 1001 50 01 0002 0003 R
文档评论(0)