《双向移位寄存器.doc》由会员分享,可在线阅读,更多相关《双向移位寄存器.doc(5页珍藏版)》请在三一文库上搜索。
1、一、课程设计的目的与要求1设计目的l 熟悉MAXPLUS2/Quartus II软件,掌握软件的VHDL程序输入、程序编译和程序仿真操作;l 学习利用VHDL语言设计双向移位寄存器电路程序。2设计要求根据设计正文提出的双向移位寄存器功能设置,实现电路设计。二、设计正文l 双向移位寄存器有三种输入方式:4位并行输入、1位左移串行输入、1位右移串行输入;l 双向移位寄存器有一种输出方式:4位并行输出。双向移位寄存器工作过程如下:l 当1位数据从左移串行输入端输入时,首先进入内部寄存器最高位,并在并行输出口最高位输出,后由同步时钟的上跳沿触发向左移位。l 当1位数据从右移串行输入端输入时,首先进入内
2、部寄存器最低位,并在并行输出口的最低位输出,后由同步时钟的上跳沿触发向右移位。双向移位寄存器的输入、输出端口如下:CLR:异步清零输入端;SRSI:串行右移输入端;SLSI:串行左移输入端;A、B、C、D:4位并行输入端;QA、QB、QC、QD:4位并行输出端;S0,S1:两位控制码输入端。双向移位寄存器的端口功能如下:当CLR0时,4位输出端清0;当CLK0时,4位输出端保持原来状态不变;当S00时,4位输出端保持原来的状态不变;当S01时,允许串行右移输入1位数据;当S10时,允许串行左移输入1位数据;当S11时,允许4位数据从并行端口输入。VHDL源程序:LIBRARY IEEE;USE
3、 IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; 包含库和程序包entity double_dir_regt is 定义实体为double_dir_regtport ( s: in std_logic_vector(1 downto 0); clr,clk,srsi,slsi,a,b,c,d:in std_logic; result: out std_logic_vector(3 downto 0);设置端口参数输入控制信号s,时钟clk,并行输入abcd,end double_dir_regt;输出resultARCHITEC
4、TURE rtl of double_dir_regt issignal result1: std_logic_vector(3 downto 0);设置信号result1使result能作为 输入使用begin result=result1;process (clk,clr) 敏感信号为时钟和清零信号beginif (clr=0)then result1控制信号为00时实现保持功能 result1(0)=result1(0); result1(1)=result1(1);result1(2)=result1(2);result1(3) 控制信号为01时实现右移功能result1(3)=srs
5、i;result1(2)=result1(3);result1(1)=result1(2);result1(0)控制信号为10时实现左移功能result1(0)=slsi;result1(1)=result1(0);result1(2)=result1(1);result1(3)控制信号为11时实现并行输入功能result1(0)=a;result1(1)=b;result1(2)=c;result1(3)=d; end case;end if; 程序结束end process;end rtl;三、课程设计总结1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 图表 1双向移位寄存
6、器右移仿真波形图由上图1看出当s0s1=01时,寄存器执行右移功能,并可看出srsi=1100110011001100,输出结果result依次由初始状态0000,逐渐右移左端输入端口输入srsi=1100110011001100,此时result依次会出现1000:移入1;1100:移入两个1;0110:移入两个1一个0;再有以后出现的结果0011,1001,1100,0110,0011,1001,1100.此结果符合真值表要求的右移功能。11 0 0 1 1 0011 00 1 1图表 2双向移位寄存器左移仿真波形图 由上图2看出当s0s1=10时,寄存器执行左移功能,并可看出slsi=1
7、100110011001100,输出结果result依次由初始状态0000,逐渐右移左端输入端口输入slsi=1100110011001100,此时result依次会出现0001:移入1;0011:移入两个1;0110:移入两个1一个0;再有以后出现的结果1100,1001, 0011,0110, 1100,1001, 0011.此结果符合真值表要求的左移功能。0 1 1 0控制信号s0s1=11 图表3双向移位寄存器并行输入仿真波形图如图3中控制信号s0s1=11,寄存器执行四位并行输入功能,输入端为图中a,b,c,d=0110,当时钟脉冲到来后,寄存器输出端result输出结果应为并行输入数据abcd=0110,根据仿真波形图可知,输出结果result先出现0000的初始结果,经过一段时间的延迟,输出result=0110,为并行输入数据,实现了并行输入的功能。 控制信号s0s1=00 输出结果图表4 双向移位寄存器保持仿真波形图由图4中当控制信号s0s1=10时实现左移功能,得到0000,0001,0011,0110的输出结果,当s0s1=00时,输出result一直保持0110不变,实现保持功能,根据仿真波形图可知,寄存器实现了保持的功能。综合以上四波形图,寄存器实现了实验要求的保持,右移,左移,并行输入的功能。
链接地址:https://www.31doc.com/p-10970648.html