基于FPGA的最简CPU设计.doc

基于FPGA的最简CPU设计.doc

ID:59526705

大小:901.00 KB

页数:34页

时间:2020-11-08

基于FPGA的最简CPU设计.doc_第1页
基于FPGA的最简CPU设计.doc_第2页
基于FPGA的最简CPU设计.doc_第3页
基于FPGA的最简CPU设计.doc_第4页
基于FPGA的最简CPU设计.doc_第5页
资源描述:

《基于FPGA的最简CPU设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、RISC_CPU课程设计报告2017年3月26日目录一、SPM_CPU设计31.1指令设计31.2顶层设计31.3架构设计41.4控制器设计51.4.1取指周期51.4.2运算指令(ADD,AND,SUB,NOT)61.4.3跳转指令(BR)81.4.4零标志转移(BRZ)101.4.5读指令(RD)111.4.6写指令(WR)131.4.7停机指令(HALT)151.4.8输出指令(OUT)151.5测试程序一161.5.1数据分配161.5.2算法流程图171.5.3手编机器码171.6测试程序二(fibonacci)181.6.1数据分配181.6.2程序流程

2、图181.6.3手编机器码181.7测试程序三(流水灯)191.7.1数据分配191.7.2程序流程图201.7.3手编机器码21二RISC_CPU设计222.1顶层设计222.2片上系统构架设计(soc)222.3片上地址映射表232.4指令系统设计232.4.1指令格式232.4.2指令码表232.5中央处理器CPU设计242.6指令节拍分析242.6.1取指周期242.6.2运算指令262.6.3读数据指令272.6.4写数据指令(片内)282.6.5写数据指令(片外)292.6.5无条件转移指令302.6.7零标志转移指令(SKZ)312.6.8中断返回指令

3、322.6.9中断进入32一、SPM_CPU设计基本要求:1.内部4个8比特寄存器2.内部存储器,256字节,存放指令和数据3.采用Ciletti的指令设计(见《设计与实践V17》4.2节)4.增加一个8比特的输出通道P0,扩充一条输出指令5.通过验证,并能够下板实际运行流水灯和其它程序(手编)6.采用FSMD架构,采用PLSM方案实现控制器设计。1.1指令设计指令助记符指令码动作说明操作码源操作数目标操作数数据地址NOP4’b00002’bxx2’bxx-ADD4’b0001srcdest-+=>SUB4’b0010srcdest

4、--=>AND4’b0011srcdest-&=>NOT4’b0100srcdest-~=>RD4’b01012’bxxdestaddr[addr]=>WR4’b0110src2’bxxaddr=>[addr]BR4’b01112’bxx2’bxxL_addr[L_addr]=>pcBRZ4’b10002’bxx2’bxxL_addr[L_addr]=>pc&&z_flagOUT4’b1001src2’bxx-=>P0HALT4’b11112’b

5、xx2’bxx1.2顶层设计p0[7:0]spm_1607_cpurst_nclk1.3架构设计FSMload_irdatapathinc_pcload_pcPCload_r0R0load_r1R1load_r2IRclkp0P0R2rst_nload_r3R3load_p0sel_mux1[2:0]mux1bus1writem_dataload_yYmemorydestsrcm_outm_addrALUADDRload_zaz_flagalu_outZz_flagmux2load_addrbus2instr[7:0]sel_mux2[1:0]spm_1607_cp

6、u1.4控制器设计采用PLSM方案:1.根据架构和指令的路由,分析并找到等效节点2.然后根据等效节点,分析所有控制信号的节拍关系(采用TP图分析)3.有了节拍关系之后,根据已经分析指令的节拍关系,编写PLSM的SMF表(线性序列机的状态转移表)4.最后,根据SMF表编写控制器的代码1.4.1取指周期1.将PC写入ADDR路由和等效节点sel_mux2FSMsel_mux1N1m_addrbus2bus1pcADDRMUX2MUX1PCload_addrTP图分析:pcm_addrN11PC0sel_mux1sel_mux2load_addrFSM02.将m_out中

7、的指令读出,并写入IR路由和等效节点:N2instrIRbus2MUX2m_outMEMADDRm_addrwritesel_mux2FSMload_irTP图分析:PCpcinstrN23m_outMEM2m_addrFSM0N11pcPC0sel_mux2load_irFSM1sel_mux1sel_mux2load_addrFSM2write(0)取指周期执行周期pc(pc+1)FSM0PC1inc_pc取指周期的SMF表:状态(节拍)LSM_1SLSM_2S说明AssertDeassert非周期RESETstate=s0load_addr=0inc_pc

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。