双向移位寄存器_第1页
双向移位寄存器_第2页
双向移位寄存器_第3页
双向移位寄存器_第4页
双向移位寄存器_第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<="0000"elsif (clk'event and clk='1')then case s is when "00"=>控制信号为0

5、0时实现保持功能 result1(0)<=result1(0); result1(1)<=result1(1);result1(2)<=result1(2);result1(3)<=result1(3); when"01"=> 控制信号为01时实现右移功能result1(3)<=srsi;result1(2)<=result1(3);result1(1)<=result1(2);result1(0)<=result1(1); when"10"=>控制信号为10时实现左移功能result1(0)&

6、lt;=slsi;result1(1)<=result1(0);result1(2)<=result1(1);result1(3)<=result1(2); when"11"=>控制信号为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双向移位寄存器右移仿真波形图由上图1看

7、出当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=11001100110011

8、00,输出结果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=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论