- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字系统设计【夏宇闻】CPU代码,书中代码有几处的错误概要1
//adder counter用于存放当前结果,当累加器ena接口接受到cpu的load_acc信号时,保存数据总线数据module accum(input clk,input rst,input [7:0]data,input ena,output reg [7:0]accum);always @(posedge clk)beginif(rst)beginaccum = 8b0000_0000;endelse beginaccum = data;endendendmodule//地址译码器module addr_decode(input [12:0]addr,output reg rom_sel,output reg ram_sel);always @(addr)begincasex(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;endcaseendendmodule//地址多路器module adr(input [12:0]pc_addr,input [12:0]ir_addr,input fetch,output [12:0]addr);assign addr = (fetch) ? pc_addr : ir_addr;endmodule//算术运算器module alu(input clk,input rst,input [7:0]data,input [7:0]accum,input [2:0]opcode,input alu_ena,output reg zero,output reg[7:0]alu_out);parameter HLT = 3b000, SKZ = 3b001, ADD = 3b010, ANDD = 3b011, XORR = 3b100, LDA = 3b101, STO = 3b110, JMP = 3b111;//此处有疑问,省略了assign zero = !accum;always @(posedge clk)beginif(alu_ena)begincase (opcode)HLT : alu_out = accum;SKZ : alu_out = accum;ADD : alu_out = data + accum;ANDD: alu_out = data accum;XORR: alu_out = data ^ accum;LDA : alu_out = data;STO : alu_out = accum;JMP : alu_out = accum;default : alu_out = 8bxxxx_xxxx;endcaseendendendmodule//时钟产生器module clk_gen(input clk,input reset,output reg fetch,output reg alu_ena);reg [7:0]state;parameter S1 = 8b0000_0001, S2 = 8b0000_0010, S3 = 8b0000_0100, S4 = 8b0000_1000, S5 = 8b0001_0000, S6 = 8b0010_0000, S7 = 8b0100_0000, S8 = 8b1000_0000, idle = 8b0000_0001;always @(posedge clk)beginif(reset)beginfetch = 0;alu_ena = 0;state = idle;endelse begincase (state)S1:beginalu_ena = 1;state = S2;endS2:beginalu_ena = 1;state = S3;endS3:beginfetch = 1;state = S4;endS4:beginstate = S5;endS5:state = S6;S6:state = S7;S7:beginfetch = 0;state = S8;endS8:state = S1;//idle: state = S1;default state = idle;endcaseendendendmodule//程序计数器module counter(input clk,input rst,input load,output reg [12:0]pc_addr,input [1
您可能关注的文档
最近下载
- 《全新版大学进阶英语综合教程》课程标准.pdf VIP
- 髋臼骨缺损分型.pptx VIP
- 术后有效排痰护理PPT.pptx VIP
- 髋臼及股骨骨缺损的分型及评价【45页】.pptx VIP
- (人教A版)必修一数学高一上册第二章 一元二次函数、方程和不等式 章末总结+单元检测(原卷版).docx VIP
- 伟迪捷Videojet 1210 1510 操作员手册 2011年修订版.pdf
- 理论力学哈工大第六版-课件.ppt
- 2023年高考全国卷(甲卷)数学(理)真题(含解析).pdf VIP
- 虚体医学丛书:医说解集——昆明新空间1025实验室.pdf VIP
- 护理事业近五年发展规划(2026-2030).pdf VIP
文档评论(0)