- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
“可编程ASIC设计”练习四.
实验练习9一个简单的数据处理器Figure 1 显示了一个数字系统,这个数字系统包含了一个16位的数字寄存器,一个多路复用器,一个加减单元,一个计数器和一个控制单元。数据通过一个16位的DIN输入接口输入到这个系统中来。这些数据可以通过16位的多路复用器存储到不同的寄存器中,例如R0……R7和A。这个复用器也允许数据从一个寄存器传输到另一个寄存器中。这个复用器的输出通道在图片中也就是Bus(总线),因为在数据传输期间它允许数据从一个地址传输到另一个地址。加法(或者减法)的执行是通过复用器将第一个地址的16位数字放到总线上,然后将总线上的数据存储到A寄存器中。当上面的步骤完成后,将第二个地址中的数放到总线上,加法/减法单元会执行相应的运算,然后将计算的结果存储到G寄存器总。最后G寄存器中的数据可以传输到其他指定的寄存器中。在控制单元的控制下,这个系统可以在不同的时钟周期执行不同的运算。这个控制单元决定了当特定的数据放到总线上去后,哪一个寄存器可以接受到该数据。例如,如果控制单元接收到指令信号R0out和Ain时,复用器将会把R0寄存器中的内容放置到总线上去,然后在下一个时钟信号将信号存储到A寄存器中。这样的一个系统可以称为是处理器。它将执行不同指令的具体操作。Table 1(表1)列出了该处理器实现的指令。左列显示了指令和操作数。RX[RY]的意思是把RY寄存器中的数据传输到RX寄存器中。mv(move)指令允许数据从一个寄存器复制到另一个寄存器。对于mvi(move immediate)指令RXD意味着将16位的数据D存储到RX寄存器中。每条指令可以通过9位数据IIIXXXYYY编码存储到IR寄存器当中,III代表指令,XXX代表RX寄存器,YYY代表RY寄存器。虽然只需要2位就可以编码4条指令,但是我们这里使用了3位,这是由于后续可能会有其他的指令添加到这个系统中来。IR寄存器使用16位的DIN输入中的9个位来输入指令,在图1(Figure 1)中已有暗示。对于mvi指令来说YYY三位并没有什么含义,而且立即数#D依靠16位的DIN来输入,并且立即数的输入是在指令存储到IR寄存器之后。某些指令,例如加法或者减法,需要超过1个时钟周期才能够完成,因为多个转换步骤需要依靠总线。在图1(Figure 1)中显示了控制单元通过2位的计数器来允许指令一步步的运行。当Run信号输入和指令处理完毕的Done信号输出后,处理器开始执行下一个DIN输入的指令。表2(Table2)表明了在执行表1(Table1)中的指令时不同的步骤后可以取得的控制信号。注意在步骤0(即T0)时取得的控制信号是IRin,所以这个步骤没有在列表中显示出来。第一部分:根据下面的要求,利用Verilog语言设计并完成图1(Figure1)显示的处理器的功能:1、为这个练习生成一个QuartusII工程;2、在你新建的工程文件下,新建要求的Verilog文件,编写整个流程。一个Verilog语言的模板已经在图2a(Figure 2a)中提供了,同时还有一些可以使用的底层的模块在图2b(Figure2b);3、使用仿真功能来检验你的代码是否正确。一个正确的代码的仿真输出例图已经在图3(Figure3)中提供了。它显示了在30ns时将数据(2000)16存储到IR寄存器中。这个范例在50ns时通过指令mviR0,#D把数据D=5存储到寄存器R0中。仿真在90ns时显示输入指令mvR1,R0,110ns时输入指令addR0,R1,和在190ns时输入指令subR0,R0。注意的是在该仿真中DIN输入是4位的十进制数,IR中的数据是八进制数。4、生成一个新的Quartus II工程,将完成的代码烧到Altera DE2代码中。这个工程在包含了一个顶层模块和Altera板子上适当的输入输出接口。例如你的处理器在顶层模块中,可以使用SW15-0作为系统DIN的输入端口和使用SW17来作为Run输入。同时,使用按钮KEY0作为Resetn输入,按钮KEY1作为Clock输入。连接处理器的总线和LEDR15-0,最后连接Done信号输出和LEDR17;5、为你的工程分配DE2板上适当的引脚。编译完代码后下载到FPGA芯片中去;6、通过拨动拨码开关和观察LED灯来测试你定义的功能是否实现了。当处理器的时钟可以通过开关来控制的时候,就很容易一步步操作指令和观察代码的功能实现情况。module proc (DIN, Resetn, Clock, Run, Done, BusWires);input [15:0] DIN;input Resetn, Clock, Run;output Done;output [15:0] BusWires;. . . declare variableswire
您可能关注的文档
最近下载
- 2024-2030年中国人才招聘行业运营模式及发展规划分析报告.docx
- 2022-2023学年山东省青岛市高一(上)期末化学试卷(含解析).pdf VIP
- 2024阜阳市公安局招聘警务辅助人员历年考试试题.docx VIP
- 2024年内部审计工作计划范本(6篇) .pdf VIP
- 李光浦-郑氏星案新诠.doc
- 绵阳东辰5升6考试题及答案.docx
- 中华人民共和国爱国主义教育法的精神.doc VIP
- 宣传品印刷工作(服务)方案的先进性、创新性-技术、经济、质量指标-风险分析等.docx VIP
- 中华人民共和国爱国主义教育法主题班会教案.docx VIP
- JTT 1180.10-2018 交通运输企业安全生产标准化建设基本规范第10部分:水路危险货物运输.pdf
文档评论(0)