




已阅读5页,还剩60页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Verilog HDL数字系统设计课程设计主题:RISC_CPU设计和验证第一章:RISC_CPU概述(51.1主题的起源和设计环境简介(51.2什么是CPU(5第二章:RISC_CPU结构(62.1 RISC_CPU整体结构(62.2时钟生成器(72.2.1时钟生成器简介(72.2.2时钟生成器symbol (82.2.3时钟生成器RTL (82.2.4时钟生成器源代码(82.2.5时钟生成器测试代码(92.2.6时钟生成器模拟波形(102.3命令寄存器(102.3.1指令寄存器简介(102.3.2命令寄存器symbol (112.3.3命令寄存器RTL (112.3.4命令寄存器源代码(112.3.5命令寄存器测试代码(122.3.6命令寄存器模拟波形(132.4累加器(132.4.1累加器简介(132.4.2累加器symbol (132.4.3累加器RTL (142.4.4累加器源代码(142.4.5累加器模拟代码(142.4.6累加器模拟波形(152.5算术运算符(152.5.1算术运算符简介(152.5.2算术运算符symbol (162.5.3算术运算符RTL (172.5.4算术运算符源代码(182.5.5算术元计算测试代码(192.5.6算术运算符模拟波形(202.6数据控制器(202.6.1数据控制器简介(202.6.2数据控制器smybol (202.6.3数据控制器RTL (212.6.4数据控制器源代码(212.6.5数据控制器测试代码(222.6.6数据控制器模拟波形(222.7地址多路转换器(222.7.1地址多路复用器简介(222.7.2地址多路复用器smybol (232.7.3地址多路复用器RTL (232.7.5地址多路复用器测试代码(232.7.6地址多路复用器模拟波形(242.8程序计数器(242.8.1方案计数器简介(242.8.2程序计数器symbol (252.8.3程序计数器RTL (252.8.4程序计数器源代码(252.8.5程序计数器测试代码(262.8.6程序计数器模拟波形(262.9状态控制器(272.9.1状态控制器解释器(272.9.2状态控制器smybol (272.9.3状态控制器RTL (272.9.4状态控制器源代码(272.9.5状态控制器测试代码(282.9.6状态控制器模拟波形(292.10状态机(292.10.1状态机简介(292.10.2状态机symbol (302.10.3状态机RTL (302.10.4状态机源代码(312.10.5状态机测试代码(352.10.6状态机模拟波形(362.11 CPU内核模块集成(362.11.1 CPU内核结构(362.11.2 CPU核心smybol (37第三章:CPU外围模块设计(373.1地址解码器(373.1.1地址解码器简介(373.1.2地址解码器smybol (373.1.3地址解码器RTL (383.1.4地址解码器源代码(383.1.5地址解码器测试代码(383.1.6地址解码器模拟波形(393.2 RAM (393.2.1 RAM简介(393.2.2 RAM smybol (393.2.3 RAM RTL (403.2.4 RAM源代码(403.2.5 RAM测试代码(403.2.6 RAM模拟波形(423.3 ROM (423.3.1 ROM简介(423.3.3 ROM的高电阻处理(423.4 I/o模块(433 . 4 . 1 I/o模块源代码(433 . 4 . 2 I/o模块smybol (443.5 CPU外围模块连接电路原理图(443.6刻录到FPGA(45第四章:CPU功能验证(454.1 CPU寻址和命令系统(454.2验证HLT命令(464.3 SKZ命令验证(464.4验证ADD命令(474.5 AND命令验证(474.6验证LDA、STO和JMP命令(47第五章:摘要(48参考文献: (48第1章:RISC_CPU概述1.1主题的起源和设计环境简介在本设计过程中,我们自己动脑筋,设计了CPU的软核心和实心核心。此CPU是为教育目的而设计的简化RISC_CPU。戴尔不仅关心整个CPU设计的合理性,而且还可以模拟构成此RISC_CPU的所有模块,并将它们集成到门级网络表中。因此,此CPU也是物理上可以通过特定电路结构实际实施的CPU。我们将寻址空间指定为8K (13位地址行字节),以便在此虚拟CPU上运行和模拟更复杂的程序。然后,逐步设计这些CPU,执行RTL模拟、集成、布局布线等,并再次执行模拟以了解这些设计方法的潜力。子课程设计的V erilogHDL程序都是为了学习而编写的,所有程序都在CADENCE的NC-V erilog环境、Synopsys VCS和Mentor的ModelSim 6.1等环境中模拟为V erilog语言。使用Synplify、Altera Quartus II等工具综合了各种FPGA。顺利通过RTL级模拟、集成后门级逻辑网络表模拟和布线后的门级结构电路模型模拟。此CPU型号只是教育型号,设计也不一定合理。只是原理说明RISC _CPU是如何配置的。本课程旨在学习RISC CPU的基本结构和原理,其目的有四个:了解2 V erilog HDL模拟和集成工具的潜力。2展示了V erilog设计方法对软件/硬件协同设计和验证的意义。3学习和掌握一般V erilog语法和验证方法。作者也希望本章的内容能引起对CPU和复杂数字逻辑系统设计感兴趣的电子工程师的注意,加入我国集成电路的设计团队,提高我国电子产品的质量。1.2什么是CPUCPU是中央处理器的英文缩写,是计算机的核心部件。计算机可以将信息处理分为两个阶段:1.将数据和程序(即命令序列)输入计算机的内存。2.从第一个指令的地址开始,获得所需的结果,然后结束执行。CPU的作用协调和控制计算机的各个部件执行程序,以便系统地进行。所以它是基本功能:命令:程序已在内存中时,首先根据程序入口地址弹出程序发送命令地址和控制信号的步骤。分析命令:是命令解码。分析当前获得的命令,要求什么样的操作,创建相应的作业命令。命令执行:根据分析命令时生成的操作命令形成适当的操作控制信号序列并通过实现每个命令功能的解释程序、内存和输入/输出设备的执行,包括处理计算结果并形成以下命令地址。此功能可概括为以下:能够解码命令并执行指定的动作。能做算术和逻辑运算。可以与存储和外围设备交换数据。提供整个系统所需的控制。每个CPU的性能度量和结构详细信息各不相同,但可以执行相同的基本功能。功能分析表明,所有CPU内部结构必须至少包括以下组件:算术逻辑运算部件(ALU、累加器、程序计数器、指令寄存器、解码器、零件计时和控制。RISC是精简指令集计算机(Reduced Instruction Set Computer的缩写)。这是80年代兴起的一种CPU,与普通CPU相比,它不仅简化了命令系统,还简化了命令系统,使计算机的结构更简单、更合理,从而提高了计算速度。在实现方法中,RISC_CPU与常规CPU的不同之处在于,的定时控制信号形成部件是以硬导线逻辑而不是微程序控制方法实现的。硬导线逻辑是通过直接连接触发器和逻辑闸门而构造的状态机和耦合逻辑,因此,生成控制序列要比使用微程序控制快得多。因为这样可以节省阅读微指令的时间。RISC_CPU还包含这些组件。本部分详细介绍了RISC_CPU的集成式V erilogHDL模型的设计和模拟过程,RISC _ CPU已针对培训进行了简化。第二章:RISC_CPU结构2.1 RISC_CPU整体结构RISC_CPU是复杂的数字逻辑电路,但基本组件的逻辑并不复杂。为了考虑:可以分为8个基本部件1小时时钟发生器2指令寄存器3累加器4算术逻辑运算单元5数据控制器6状态控制器7程序计数器8地址多路复用器9状态机每个部件的互连如图17.1所示。其中,时钟生成器使用外来时钟信号,通过分频生成一系列时钟信号,并发送到其他部件。零件之间的互操作性由状态控制器控制。各部件的具体结构和逻辑关系在下面部分一一介绍。2.2时钟生成器2.2.1时钟生成器简介时钟生成器CLK_GEN生成一系列时钟和控制信号:clk、fetch、alu_ena,这些信号使用外部时钟信号CLK发送到CPU。其中,fetch是控制信号,clk的octave信号,在fetch级别较高时,clk触发CPU控制器以开始执行命令,fetch信号还控制地址多路复用器输出命令地址和数据地址。Clk信号用作命令寄存器、累加器和状态控制器的时钟信号。Alu_ena用于控制算术逻辑计算单元的操作。同步状态机用于设计时钟生成器,因此clk_gen模块的源程序可以由各种合成器合成或生成Fetch、alu_ena在同步性能方面有了显着提高,为提高整个系统的性能奠定了良好的基础。2.2.2时钟生成器symbol2.2.3时钟生成器RTL2.2.4时钟生成器源代码 timescale 1ns/1nsModule clk _ gen (clk、reset、fetch、alu _ ENA、clk1Input clkInput resetOutput fetch、alu_ena、clk1Reg fetch、alu _ enareg733600状态;Assign clk1=clkParameterS1=8b,S2=8b,S3=8b,S4=8b,S5=8b,S6=8b,S7=8b,S8=8b,Idle=8bAlways (posedge clk or nedge resetIf(reset)Beginfetch=0;alu _ ENA=0;State=idleEndElseBegin“Case(状态)”s 1: begin alu _ ENA=1;State=s2Ends 23360 begin alu _ ENA=0;State=s3Ends 3: begin fetch=1;State=s4EndS4:begin state=s5EndS53360 beginstate=S6EndS6:begin state=s7Ends 7: begin fetch=0;State=s8EndS8:begin状态=s1EndIdle:状态=s1Default: state=idleEndcaseEndEndmodule2.2.5时钟生成器测试代码 timescale 1ns/1ns模块TB(;Reg clkReg resetWire fetchWire alu _ enaWire clk1Clk _ genu1(.clk,reset,fetch (fetch,alu _ ENA (alu _ ENA,clk1InitialBeginclk=0;reset=0;EndAlwaysBegin# 50 clk= clk# 400 reset=1;EndEndmodule2.2.6时钟生成器模拟波形2.3指令寄存器2.3.1命令寄存器简介顾名思义,命令寄存器用于保存命令。命令寄存器的触发器时钟是clk。在clk的紧邻触发器中,寄存器将从数据总线发送的指令存储在高8位或低8位寄存器中。但是,数据总线上的数据不是在每个clk的上升阶段存档的。这是因为有时会向数据总线发送指令或发送数据。存档不是由CPU状态控制器的load_ir信号控制的。Load_ir信号通过ENA端口输入到命令寄存器中。重置后,命令寄存器清除为零。每个指令是2字节,即16位。高3个字符是操作码,那13个字符是地址。(CPU的地址总线为13位,寻址空间为8K字节。此设计的数据总线为8位,因此每个命令必须使用两次。8个字,8个字,8个字。目前取高8位或低8位,由
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 襄阳五中2025届高三下学期5月适应性考试(一)语文试题+答案
- 口腔照护流程培训课件
- 如何讲好技术培训课件
- 企业EHS手册发布培训
- 滨江就业协议书
- 通信设备购销合同协议
- 早教培训协议书
- 毕业友谊协议书
- 《微软公司中文版简介》课件
- 产品采购与质量保证协议条款书
- 蓉城小史官考试试题及答案
- 2024年全球及中国互联网舆情监测系统行业头部企业市场占有率及排名调研报告
- GB/T 196-2025普通螺纹基本尺寸
- DB11-T 1444-2025 城市轨道交通隧道工程注浆技术规程
- 麻醉科气道管理护理
- 失眠障碍的健康宣教
- 2024年演出经纪人考试真题解析与试题及答案
- 土地房屋测绘项目投标方案技术标
- 2025年春季形势与政策-从教育大国迈向教育强国
- 2025海南省建筑安全员《C证》考试题库
- GB/T 26189.2-2024工作场所照明第2部分:室外作业场所的安全保障照明要求
评论
0/150
提交评论