




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Good is good, but better carries it.精益求精,善益求善。verilog处理器设计-实验练习9图1展示了一个数字系统,它包含了一16位的寄存器,一个多路转换器,一个加法器/减法器单元,一个计数器和一个控制单元。数据是通过16位的DIN输入口输入到系统中的。此数据可以通过16位宽的多路转换器被加载到各种寄存器如R0,R7和A中。多路转换器还可以将数据从一个寄存器中转移到另一个寄存器中。在图中,多路转换器的输出线被称为总线,因为这个术语通常用于布线,使数据可以在一个系统中从一个位置传送到另一个。【通过使用多路转换器,可以首先将一个16位的数据放在总线上,并把这个数
2、据加载到寄存器A中进行加法或减法的运算。这样做好之后,第二个16位的数据也被放置在总线上,加法器/减法器单元就可以执行所要求的操作,并把结果保存在寄存器G中。】(第一个操作数经总线到达寄存器A中,第二个操作数在总线上,此时加法减法单元进行运算,将结果放置在寄存器G中。)由控制单元控制下,该系统可以在每个时钟周期内执行不同的操作。当特定的数据被放置在总线上后,由控制单元决定哪一个寄存器来装载这个数据。例如,若控制器断言R0out和Ain的信号,多路复用器将把寄存器R0out中的内容放置到总线上,而这个数据将在下一个有效时钟边沿被送入寄存器A。表一在处理器中执行的指令每条指令都可以用9位IIIXX
3、XYYY的格式编码并存储在IR寄存器中,其中III表示指令,XXX给出了RX寄存器而YYY给出了RY寄存器。尽管四条指令的编码只需要两个位,我们还是使用了3位,因为在本练习的后面部分,一些其他的指令将被添加到处理器中。【因此,IR在16位的DIN输入中具有9位的连接】(这句翻译的不好,见图理解),如图1中所示。【对于mvi指令来说,YYY字段是没有意义的,并且在mvi指令被存储到IR后,立即数#D必须由16位的DIN输入口提供。】(即mvi指令中,立即数D不需要被放置在寄存器中,可以直接从16位DIN输入进行运算处理。)一些如加法和减法等的指令,需要一个以上的时钟周期来完成,因为多个数据的传输
4、必须通过总线。控制单元使用了如图1所示两位的计数器,是的这些指令可以单步执行。当输入运行信号时(Runinput),处理器开始执行DIN输入的指令;当指令执行完毕后,处理器将输出完成信号。【表2表示了表1中每条指令执行的每个时间步长控制器发出的信号。】(即表2中可以看到表1中的那些指令,每个时钟周期执行完后,处理器发出的信号,是否完成?进行加法运算?以及一共需要几个时钟周期。)需要注意的事,唯一的控制信号断言在时间步长0的是IRin,所以其当前的时间步长没有在表中显示出来。表2每个指令/时钟步长的控制信号第一部分:使用以下的Verilog代码设计和实施图1所示的处理器:1、为这个练习新建一个Q
5、uartusII工程。2、生成所需的Verilog文件添加到工程中,并对电路进行编译。图2a是Verilog代码的参考框架,图2b是一些可应用与这个代码中的子电路模块。3、使用功能仿真以验证代码的正确性。图3是一个经过功能仿真的设计正确的电路产生的输出的例子。这表明数据(2000)16下标从DIN被装入IR的时间为30ns。此模式代表指令mviR0,#D中,D=5的值在时钟边沿上被装入R0所需时间为50ns。模拟仿真显示,指令mvR1,R0耗时90ns,指令addR0,R1耗时110ns,指令subR0,R0耗时190ns。需要注意的是,模拟结果显示DIN是一个4位的16进制数而IR的内容是一
6、个3位的8进制数。4、新建一个Quartusii工程,该工程将被用于电路在AlteraDE2板上的执行。这个项目应该包含一个顶层模块,它包含适当的用于Altera开发板的输入和输出端口。在这个顶层模块中实例化你的处理器。用开关SW15-0来模拟DIN的输入,用开关SW17表示控制运行信号(Runinput)。此外,按钮KEY0用于复位,KEY1用于控制时钟。将处理器总线连接在LEDR15-0上,讲完成信号接在LEDR17上。5、在工程中添加与DE2板相关的引脚文件。编译电路并下载到FPGA芯片中。6、通过切换开关和观察LED等的亮灭来测试设计的功能。由于处理器的时钟输入由按钮开关控制,可以通过
7、单步执行来观察电路的状态。图2aVerilog代码框架图2b子电路模块图3处理器仿真第二部分在这部分中你需要设计如图4中所示的电路,其中的存储器模块和计数器将被连接到第一部分你所设计的处理器上。计数器用于读取存储器中连续地址中存放的内容,并将该数据作为一个流的指令提供给处理器。为了简化这个电路的设计和测试,我们为处理器和内存使用不同的的的时钟的信号PClock和MClock。图4处理器与一个存储器和计数器的连接1、新建一个Quartusii的工程,用于测试电路。2、生成一个包含处理器,寄存器和计数器的顶层我Verilog文件。使用QuartusIIMegaWizard插件管理工具从Altera
8、库创建内存模块和参数化模块(LPMS)。在存储目录下找到正确的LPM,称为ALTSYNCRAM。按照指令所提供的向导来创建一个16位宽的读数据端口和32字深(32wordsdeep)的存储器。图5是向导的第一个界面。由于这个内存仅具有一个读端口,并没有写端口,它被称为一个同步的只读存储器(同步ROM)。请注意,存储器包括一个用于同步加载地址的寄存器。【由于CycloneIIFPGA上内存资源的设计,这个存储器是必需的,同时也导致了设计要中包含这个地址的时钟。】(这句话翻译的不好,理解原文Thisregisterisrequiredduetothedesignofthememoryresourc
9、esontheCycloneIIFPGA;accountfortheclockingofthisaddressregisterinyourdesign.)为了将处理器指令放置到存储器中,你需要指定初始值,而当你的电路被编程到FPGA芯片上时,这个初始值需要就存储在存储器中。这样就可以告诉向导使用存储器初始化文件(MIF)的内容来初始化你的存储器。图6是MegaWizard插件管理器工具的相应界面的屏幕显示。我们已经指定了一个名叫instmem.mif的文件,这个必须创建在一个已包含在QuartusII工程的目录中。使用QuartusII的在线帮助,以了解MIF文件的格式并创建一个有足够处理器指令的文件来测试你的电路。3、使用功能仿真测试电路。确保数据已从ROM中被正确读出并且能够被处理器执行。4、确保工程中含有必要的端口名称和引脚位置文件使得电路能够在DE2板上执行。用开关SW17来发出处理器的开始信号(Runinput),KEY0用于复位,KEY1用于MCclock,KEY2用于PCclock。处理器总线连在LEDR15-0上,完成信号连在LED17上。5、编译电路并且下载到FPGA芯片上。6、通过转换开关和观察LED测试你设计的功能。由于由按钮开关控制电路的时钟输入,很容易通过指令的单步执行观察的电路的状态。图5ALTSYNCRA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年商业银行从业人员知识竞赛题230题及答案
- 新能源汽车行业核心价值解析试题及答案
- 虚拟现实技术在小学语文阅读理解策略教学中的应用效果研究
- 共享出行市场投资策略与退出机制研究报告
- 工程设计的技术手册试题及答案
- 汽车扭转测试题及答案
- 社交媒体平台舆情监测与危机公关舆情引导策略报告
- 爱卫办职业测试题及答案
- 工业互联网平台5G通信模组适配性产业链上下游企业合作模式分析报告
- 基于大数据的2025年自动驾驶卡车在城市配送中的应用前景报告
- 房地产广告效果的评测与分析
- 2025年北京市石景山区九年级初三一模语文试卷(含答案)
- 华大新高考联盟2025届高三4月教学质量测评历史+答案
- T-CASEI 015-2023叉车使用安全管理规范
- 2025年浙江省温州市中考一模语文试题(含答案)
- 首次透析患者健康教育
- 山洪灾害防御知识课件
- 血吸虫防急感课件
- 弱电基础知识单选题100道及答案
- 殡葬法律法规试题及答案
- 2024年7月27日内蒙古阿拉善盟直机关遴选笔试真题及解析
评论
0/150
提交评论