vhdl课程设计简单处理器的设计与仿真大学毕设论文.doc
《vhdl课程设计简单处理器的设计与仿真大学毕设论文.doc》由会员分享,可在线阅读,更多相关《vhdl课程设计简单处理器的设计与仿真大学毕设论文.doc(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、前言11、设计任务22、设计说明32.1 处理器原理图及其组成32.2数据传输及加减法的实现32.3处理器所支持的指令及功能说明、指令的编码规则42.4指令执行的时序控制43.处理器指令实现的功能及其具体描述63.1 mv Rx,Ry63.2 mvi Rx,#D73.3 add Rx,Ry和sub Rx,Ry84单元模块设计说明、VHDL代码及其仿真104.1寄存器RX104.2 寄存器A114.3 加/减法器addsub124.4 寄存器G134.5 指令寄存器IR144.6 计数器upcount154.7 复用器multi164.8 控制单元control184.9 控制指令输入转换模块2
2、64.10 16*16点阵显示控制模块275 处理器各个模块的连接及处理器功能仿真295.1处理器各个模块的连接295.2处理器功能仿真295.2.1立即数赋给寄存器R0295.2.2立即数赋给寄存器R1295.2.3 寄存器R0的值赋给寄存器R2295.2.4 寄存器R1的值赋给寄存器R3295.2.5立即数赋给寄存器R4295.2.6 寄存器R0加上R4赋给R0305.2.7 寄存器R1加上R4赋给R1305.2.6 寄存器R0加上R4赋给R0305.2.7立即数赋给寄存器R5305.2.8 寄存器R4减去R5赋给R4305.2.9 寄存器R4减去R0赋给R4306 处理器实现的功能与操作
3、说明316.1 处理器实现的功能316.2 处理器相关的操作说明317 课程设计总结328附录.34前言VHDL 的英文全名是 Very-High-Speed Integrated Circuit Hardware Description Language,诞生于 1982 年。1987 年底,VHDL被 IEEE 和美国国防部确认为标准硬件描述语言。 VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个
4、系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。与其他硬件描述语言相比,VHDL具有以下特点:(1)功能强大、设计灵活VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言所不能比拟的。VHDL还支持各种设计方法,既支持自底向上的设计,又支持自
5、顶向下的设计;既支持模块化设计,又支持层次化设计。(2)支持广泛、易于修改由于VHDL已经成为IEEE标准所规范的硬件描述语言,目前大多数EDA工具几乎都支持VHDL,这为VHDL的进一步推广和广泛应用奠定了基础。在硬件电路设计过程中,主要的设计文件是用VHDL编写的源代码,因为VHDL易读和结构化,所以易于修改设计。(3)强大的系统硬件描述能力VHDL具有多层次的设计描述功能,既可以描述系统级电路,又可以描述门级电路。而描述既可以采用行为描述、寄存器传输描述或结构描述,也可以采用三者混合的混合级描述。另外,VHDL支持惯性延迟和传输延迟,还可以准确地建立硬件电路模型。VHDL支持预定义的和自
6、定义的数据类型,给硬件描述带来较大的自由度,使设计人员能够方便地创建高层次的系统模型。(4)独立于器件的设计、与工艺无关设计人员用VHDL进行设计时,不需要首先考虑选择完成设计的器件,就可以集中精力进行设计的优化。当设计描述完成后,可以用多种不同的器件结构来实现其功能。(5)很强的移植能力VHDL是一种标准化的硬件描述语言,同一个设计描述可以被不同的工具所支持,使得设计描述的移植成为可能。(6)易于共享和复用VHDL采用基于库(Library)的设计方法,可以建立各种可再次利用的模块。这些模块可以预先设计或使用以前设计中的存档模块,将这些模块存放到库中,就可以在以后的设计中进行复用,可以使设计
7、成果在设计人员之间进行交流和共享,减少硬件电路设计。1、设计任务用VHDL设计一个简单的处理器,并完成相关的仿真测试。 2、设计说明2.1 处理器原理图及其组成图1是一个处理器的原理图,它包含了一定数量的寄存器、一个复用器、一个加法/减法器(Addsub),一个计数器和一个控制单元。图1 简单处理器的电路图2.2数据传输及加减法的实现数据传输实现过程:16位数据从DIN输入到系统中,可以通过复用器分配给R0R7和A,复用器也允许数据从一个寄存器传通过Bus送到另外一个寄存器。加法和减法的实现过程:复用器先将一个数据通过总线放到寄存器A中,然后将另一个数据放到总线上,加法/减法器对这两个数据进行
8、运算,运算结果存入寄存器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寄存器sub Rx, RyRx Rx - Ry先将 Rx 和 Ry 寄存器的值相减,再把相减的值存入 Rx 寄存器所有指令都按9位编码(取自DIN的高9位)存储在指令寄存器IR中,编码规则为I
9、IIXXXYYY,III表示指令,XXX表示Rx寄存器,YYY表示Ry寄存器。立即数#D是在mvi指令存储到IR中之后,通过16位DIN输入的。如表2所示表22.4指令执行的时序控制有一些指令,如加法指令和减法指令,需要在总线上多次传输数据,因此需要多个时钟周期才能完成。控制单元使用了一个两位计数器来区分这些指令执行的每一个阶段。当Run信号置位时,处理器开始执行DIN输入的指令。当指令执行结束后,Done信号置位,表3列出四个指令在执行过程中每一个时间段置位的控制信号。图2列出了处理器的状态转换图表3: 时间指令T0T1T2T3(mv):I0(mvi):I1(add):I2(sub):I3I
10、RinIRinIRinIRinRYout,RXin,DoneDINout,RXin,DoneRXout,AinRXout,Ain-RYout,Gin,AddsubRYout,Gin,Addsub-Gout,RXin,DoneGout,RXin,Done“00”IRin“10”Add/sub“01”mv“11”Add/sub“01”Add/sub“01”mvi“10”Add/sub图2,处理器状态转换图3.处理器指令实现的功能及其具体描述3.1 mv Rx,Ry实现的功能:将寄存器Rx的值赋给寄存器Ry(以mv R0, R5为例)(1 )计数器为“00”时,指令寄存器的置位控制信号输入端IRin
11、=1有效,将DIN输入的数据的高9位锁存。置位的控制信号如图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)计数器为“
12、01”时,首先控制单元根据设计器为“00”时输入的指令,向复用器发出选通控制信号,复用器根据该控制信号让DIN的值输出到总线上,然后控制单元控制寄存器R0将总线上的值锁存,完成整个立即数对寄存器的赋值过程。置位的控制信号和数据流如图6加粗黑线所示。图63.3 add Rx,Ry和sub Rx,Ry实现的功能:将寄存器Ry的值加上/减去寄存器Rx的值并赋给寄存器Rx(以add/sub R0,R1为例)。(1)计数器为“00”时,指令寄存器的置位控制信号输入端IRin=1有效,将DIN输入的数据的高9位锁存。置位的控制信号如图7加粗黑线所示。图7(2)计数器为“01”时,首先控制单元根据设计器为“
13、00”时输入的指令,向复用器发出选通控制信号,复用器根据该控制信号让R0的值输出到总线上,然后控制单元控制寄存器A将总线上的值锁存。置位的控制信号和数据流如图8加粗黑线所示。图8(3)计数器为“10”时,首先控制单元根据设计器为“00”时输入的指令,向复用器发出选通控制信号,复用器根据该控制信号让R1的值输出到总线上,然后控制单元控制加法/减法器addsub将寄存器A的值和总线上的值相加/相减并输出,接着寄存器G将加法/减法器addsub的计算结果锁存。置位的控制信号和数据流如图9加粗黑线所示。图9(4)计数器为“11”时,首先控制单元向复用器发出选通控制信号,复用器根据该控制信号让寄存器G的
14、值输出到总线上,寄存器R0将总线上的值进行锁存,完成整个寄存器与对寄存器见加减法的运算过程。置位的控制信号和数据流如图10加粗黑线所示。图104单元模块设计说明、VHDL代码及其仿真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 st
15、d_logic;datain :in std_logic_vector(15 downto 0);dataout:out std_logic_vector(15 downto 0) );end RX;architecture behave of RX is signal databuffer:std_logic_vector(15 downto 0);beginprocess(clock,RXin,datain,databuffer)beginif (clockevent and clock=1) then if (RXin=1) then databuffer=datain; else da
16、tabuffer=databuffer;end if;else databuffer=databuffer;end if;dataout=databuffer;end process;end behave;4.2 寄存器A寄存器A用于数据的存储,当时钟输入clock的上升沿到来且Ain=1时,将数据输入端datain15.0的数据锁存到寄存器中并从数据输出端dataout15.0输出;当RXin=0时,输出端保持原来的值不变。当处理加减法时,将时间T1时总线送过来的数据暂存,当T2时,将T1时存储在A中的数据与总线传输过来的数据在Addsub中进行加减运算,并将结果并输出到寄存器G中。图12寄
17、存器A的VHDL代码:library ieee;use ieee.std_logic_1164.all;entity A isport(Ain,clock : in std_logic;datain :in std_logic_vector(15 downto 0);dataout:out std_logic_vector(15 downto 0) );end A;architecture behave of A is signal databuffer:std_logic_vector(15 downto 0);beginprocess(clock,Ain,datain,databuffer
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vhdl 课程设计 简单 处理器 设计 仿真 大学 论文
限制150内