ImageVerifierCode 换一换
格式:DOCX , 页数:38 ,大小:508.22KB ,
资源ID:19663829      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19663829.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(vhdl课程设计简单处理器的设计与仿真大学毕设论文Word文档下载推荐.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

vhdl课程设计简单处理器的设计与仿真大学毕设论文Word文档下载推荐.docx

1、VHDL采用基于库(Library)的设计方法,可以建立各种可再次利用的模块。这些模块可以预先设计或使用以前设计中的存档模块,将这些模块存放到库中,就可以在以后的设计中进行复用,可以使设计成果在设计人员之间进行交流和共享,减少硬件电路设计。1、设计任务用VHDL设计一个简单的处理器,并完成相关的仿真测试。 2、设计说明2.1 处理器原理图及其组成图1是一个处理器的原理图,它包含了一定数量的寄存器、一个复用器、一个加法/减法器(Addsub),一个计数器和一个控制单元。图1 简单处理器的电路图2.2数据传输及加减法的实现数据传输实现过程:16位数据从DIN输入到系统中,可以通过复用器分配给R0R

2、7和A,复用器也允许数据从一个寄存器传通过Bus送到另外一个寄存器。加法和减法的实现过程:复用器先将一个数据通过总线放到寄存器A中,然后将另一个数据放到总线上,加法/减法器对这两个数据进行运算,运算结果存入寄存器G中,G中的数据又可根据要求通过复用器转存到其他寄存器中。2.3处理器所支持的指令及功能说明、指令的编码规则表1是该处理所支持的指令表1 操作功能说明mv Rx, RyRx Ry将 Ry 寄存器的值复制到 Rx 寄存器mvi Rx, #DRx Data将 Data 值 存入 Rx寄存器add Rx, RyRx Rx + Ry先将 Rx 和 Ry寄存器的值相加,再把相加的值存入 Rx寄存

3、器sub Rx, RyRx Rx - Ry先将 Rx 和 Ry 寄存器的值相减,再把相减的值存入 Rx 寄存器所有指令都按9位编码(取自DIN的高9位)存储在指令寄存器IR中,编码规则为IIIXXXYYY,III表示指令,XXX表示Rx寄存器,YYY表示Ry寄存器。立即数#D是在mvi指令存储到IR中之后,通过16位DIN输入的。如表2所示表22.4指令执行的时序控制有一些指令,如加法指令和减法指令,需要在总线上多次传输数据,因此需要多个时钟周期才能完成。控制单元使用了一个两位计数器来区分这些指令执行的每一个阶段。当Run信号置位时,处理器开始执行DIN输入的指令。当指令执行结束后,Done信

4、号置位,表3列出四个指令在执行过程中每一个时间段置位的控制信号。图2列出了处理器的状态转换图表3: 时间指令T0T1T2T3(mv):I0(mvi):I1(add):I2(sub):I3IRinRYout,RXin,DoneDINout,RXin,DoneRXout,Ain-RYout,Gin,AddsubGout,RXin,Done图2,处理器状态转换图3.处理器指令实现的功能及其具体描述3.1 mv Rx,Ry实现的功能:将寄存器Rx的值赋给寄存器Ry(以mv R0, R5为例)(1 )计数器为“00”时,指令寄存器的置位控制信号输入端IRin=1有效,将DIN输入的数据的高9位锁存。置位

5、的控制信号如图3加粗黑线所示。图3(2)计数器为“01”时,首先控制单元根据设计器为“00”时输入的指令,向复用器发出选通控制信号,复用器根据该控制信号让R5的值输出到总线上,然后控制单元控制寄存器R0将总线上的值锁存,完成整个寄存器对寄存器的赋值过程。置位的控制信号和数据流如图4加粗黑线所示。图43.2 mvi Rx,#D将的立即数#D赋给寄存器Rx(以mv R0, #D为例)(1)计数器为“00”时,指令寄存器的置位控制信号输入端IRin=1有效,将DIN输入的数据的高9位锁存。置位的控制信号如图5加粗黑线所示。图5(2)计数器为“01”时,首先控制单元根据设计器为“00”时输入的指令,向

6、复用器发出选通控制信号,复用器根据该控制信号让DIN的值输出到总线上,然后控制单元控制寄存器R0将总线上的值锁存,完成整个立即数对寄存器的赋值过程。置位的控制信号和数据流如图6加粗黑线所示。图63.3 add Rx,Ry和sub Rx,Ry将寄存器Ry的值加上/减去寄存器Rx的值并赋给寄存器Rx(以add/sub R0,R1为例)。置位的控制信号如图7加粗黑线所示。图7(2)计数器为“01”时,首先控制单元根据设计器为“00”时输入的指令,向复用器发出选通控制信号,复用器根据该控制信号让R0的值输出到总线上,然后控制单元控制寄存器A将总线上的值锁存。置位的控制信号和数据流如图8加粗黑线所示。图

7、8(3)计数器为“10”时,首先控制单元根据设计器为“00”时输入的指令,向复用器发出选通控制信号,复用器根据该控制信号让R1的值输出到总线上,然后控制单元控制加法/减法器addsub将寄存器A的值和总线上的值相加/相减并输出,接着寄存器G将加法/减法器addsub的计算结果锁存。置位的控制信号和数据流如图9加粗黑线所示。图9(4)计数器为“11”时,首先控制单元向复用器发出选通控制信号,复用器根据该控制信号让寄存器G的值输出到总线上,寄存器R0将总线上的值进行锁存,完成整个寄存器与对寄存器见加减法的运算过程。置位的控制信号和数据流如图10加粗黑线所示。图104单元模块设计说明、VHDL代码及

8、其仿真4.1寄存器RX寄存器R0R7用于数据的存储。当时钟输入clock的上升沿到来且RXin=1时,将数据输入端datain15.0的数据锁存到寄存器中并从数据输出端dataout15.0输出;当RXin=0时,输出端保持原来的值不变。图11寄存器RX的VHDL代码:library ieee;use ieee.std_logic_1164.all;entity RX isport(RXin,clock : in std_logic;datain :in std_logic_vector(15 downto 0);dataout:out std_logic_vector(15 downto 0

9、) );end RX;architecture behave of RX is signal databuffer:std_logic_vector(15 downto 0);beginprocess(clock,RXin,datain,databuffer)if (clockevent and clock=1) then if (RXin=) then databuffer=datain; else databuffer=databuffer;end if;else databufferdataout01101100不断循环;当clear=1时(清零端clear有效),对输出Q1.0异步清零

10、,与时钟无关。图16计数器upcount的VHDL代码use ieee.std_logic_signed.all;entity upcount isport(clear, clock : Q : out std_logic_vector(1 downto 0);end upcount;architecture Behavior of upcount issignal count : std_logic_vector(1 downto 0);process (Clock)if clear= then -clear= clear is effectivecount = 00;else count=

11、 count+1;Q=count;end Behavior;4.7 复用器multi复用器根据控制单元的控制信号将指定的输入数据输出到总线上。来自控制单元的控制信号为R0outR7out、Gout、DINout,输入数据位来自寄存器R0R7、寄存器A、数据输入端DIN,当控制信号的某一位为1时,将其对应的输入数据输出到总线上。图17复用器multi的VHDL代码entity multi isR0in :R1in :R2in :R3in :R4in :R5in :R6in :R7in :DIN :Gin :R0out :in std_logic;R1out :R2out :R3out :R4ou

12、t :R5out :R6out :R7out :Gout :DINout :buswire:buffer std_logic_vector(15 downto 0) end multi;architecture behave of multi is signal select_signal:std_logic_vector(9 downto 0);select_signaldatabuffernull;end case;buswire4.8 控制单元control控制单元根据计数器发出的脉冲和DIN输入的操作指令对整个系统的其他模块进行控制,完成指定的操作。图18控制单元control的VHDL代码use ieee

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1