双向移位寄存器
- 格式:doc
- 大小:86.50 KB
- 文档页数:5
可编程逻辑器件技术项目设计报告课题名称:双向移位寄存器班级:13电子(2)班姓名:陈秋娥指导教师:龚兰芳一、设计题目:双向移位寄存器:在单像移位寄存器的基础上增加一个开关。
二、设计要求:当开关闭合时,向右移位;断开时,向左移位。
双向移位寄存器特性表LOAD LEFT_RIGHT CLK D Q1 X X D 异步置数Q=D 0 0 D 循环右移0 1 D 循环左移三、设计程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity aa isport(cp:in std_logic;k,right:in std_logic;q:in std_logic_vector(3 downto 0);n1:out std_logic_vector(7 downto 0);b:buffer std_logic_vector(3 downto 0);p:out std_logic_vector(3 downto 0));end aa;architecture one of aa issignal cp1:std_logic;beginn1<="11111110";p<="0000";process(cp)variable cnt1:integer range 0 to 10000; variable cnt2:integer range 0 to 2500; beginif cp'event and cp='1' thenif cnt1=10000 thencnt1:=0;if cnt2=2500 thencnt2:=0;cp1<=not cp1;elsecnt2:=cnt2+1;end if;elsecnt1:=cnt1+1;end if;end if;end process;process(k,right,cp1,q)variable dd:std_logic_vector(3 downto 0); beginif k='1' thenb<=q;elsif cp1'event and cp1='1' thenif right='1' thendd(2 downto 0):=b(3 downto 1);dd(3):=b(0);elsedd(3 downto 1):=b(2 downto 0);dd(0):=b(3);end if;b<=dd;end if;end process;end one;四、引脚分配图:五、硬件下载实现现象描述:当闭合开关时,点阵开始右移位;断开时,点阵左移位;当两个都拨动时,点阵就双向移位。
双向移位寄存器
双向移位寄存器是一种能够在输入数据串和输出数据串之间实现双向数据传输的寄存器。
它可以通过控制信号来实现数据的左右移位操作。
双向移位寄存器通常由多个触发器组成,每个触发器都能够存储一个比特位。
这些触发器之间通过电路连接,形成一个寄存器。
在双向移位寄存器中,有两个输入端和两个输出端。
一个输入端被称为数据输入端,用于将外部数据输入到寄存器中。
另一个输入端被称为控制输入端,用于控制数据的移位方向(左移或右移)。
当控制输入端接收到移位信号时,寄存器可以执行左移或右移操作。
左移操作将所有触发器中存储的数据向左移动一位,其中最左边的触发器的输出位被丢弃,最右边的触发器的输入位接收一个新的数据位。
类似地,右移操作将
所有触发器中存储的数据向右移动一位,其中最右边的触
发器的输出位被丢弃,最左边的触发器的输入位接收一个
新的数据位。
双向移位寄存器的输出端将从寄存器中读取数据,并将其
作为输出数据串输出。
输出端和输入端可以通过控制信号
来切换,实现双向数据传输。
双向移位寄存器在许多应用中都有用途,比如数据缓冲和
数据传输等。
它可以灵活地处理不同方向的数据移位操作,并且能够实现高效的数据传输。
d触发器构成的双向移位寄存器一、概述双向移位寄存器是一种能够实现数据在两个方向上移位的寄存器,其常用于串行通信、计数器等电路中。
其核心部件为d触发器构成的双向移位寄存器。
二、d触发器d触发器是一种基本的时序电路,其输入为数据输入端d和时钟输入端clk,输出为输出端q和反相输出端q'。
当clk上升沿到来时,其将输入端d的值传输到输出端q上,并保持该状态直到下一个时钟上升沿到来。
三、双向移位寄存器1. 正向移位当控制信号sel=0时,数据从右侧进入寄存器,并从左侧出去。
具体实现方式为:将右侧d触发器的数据输入端连接至外部数据线,左侧d触发器的数据输入端连接至右侧d触发器的输出端。
2. 反向移位当控制信号sel=1时,数据从左侧进入寄存器,并从右侧出去。
具体实现方式为:将左侧d触发器的数据输入端连接至外部数据线,右侧d触发器的数据输入端连接至左侧d触发器的输出端。
四、构成原理双向移位寄存器由两个d触发器构成,其中一个为正向移位的d触发器,另一个为反向移位的d触发器。
控制信号sel用于控制数据的进出方向。
1. 正向移位当sel=0时,右侧d触发器接收外部数据输入,左侧d触发器接收右侧d触发器的输出。
当时钟上升沿到来时,右侧d触发器将数据传递至左侧d触发器,并保持该状态直到下一个时钟上升沿到来。
此时,左侧d触发器将其输出端的值传递至外部输出线。
2. 反向移位当sel=1时,左侧d触发器接收外部数据输入,右侧d触发器接收左侧d触发器的输出。
当时钟上升沿到来时,左侧d触发器将数据传递至右侧d触发器,并保持该状态直到下一个时钟上升沿到来。
此时,右侧d触发器将其输出端的值传递至外部输出线。
五、应用场景双向移位寄存器常用于串行通信、计数器等电路中。
在串行通信中,双向移位寄存器可实现数据在串行通信线路中的进出操作;在计数器中,双向移位寄存器可实现计数器的正向和反向计数操作。
六、总结双向移位寄存器是一种能够实现数据在两个方向上移位的寄存器,其核心部件为d触发器构成的双向移位寄存器。
实验五四位双向移位寄存器一、实训目的1.巩固编译、仿真VHDL文件的方法。
2.掌握VHDL程序顺序语句的应用。
3.掌握四位双向移位寄存器的工作原理。
二、实训器材计算机与Quartus Ⅱ工具软件。
三、实训指导(一)实训原理四位双向移位寄存器真值表如表5-1所示。
表5-1 四位双向移位寄存器的真值表输入输出CR M1 M0 DSR DSL CP D3 D2 D1 D0 Q3 Q2 Q1 Q00 X X X X X X X X X 0 0 0 01 X X X X 0 X X X X Q3 Q2 Q1 Q0 1 1 1 X X ↑d3 d2 d1 d0 d3 d2 d1 d0 1 0 1 1 X ↑X X X X 1 Q3 Q2 Q1 1 0 1 0 X ↑X X X X 0 Q3 Q2 Q1 1 1 0 X 1 ↑X X X X Q2 Q1 Q0 1 1 1 0 X 0 ↑X X X X Q2 Q1 Q0 0 1 0 0 X X X X X X X Q3 Q2 Q1 Q0(二)实训步骤1.设计输入VHDL文件(1)建立工程项目。
(2)建立VHDL文件。
(3)设计输入VHDL文件,可用IF语句或CASE语句等顺序语句设计。
VHDL代码如下:LIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY YWJCQ4 ISPORT(M:IN STD_LOGIC_VECTOR(1 DOWNTO 0);D:IN STD_LOGIC_VECTOR(3 DOWNTO 0);CR,CP,DSR,DSL:IN STD_LOGIC;Q:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0)); END YWJCQ4;ARCHITECTURE W OF YWJCQ4 ISBEGINPROCESS(CR,CP,DSR,DSL,M,D)BEGINIF CR='0' THEN Q<="0000";ELSIF (CP='1' AND CP'EVENT) THENCASE M ISWHEN "11"=>Q<=D;WHEN "01"=>Q<=DSR&Q(3 DOWNTO 1);WHEN "10"=>Q<=Q(2 DOWNTO 0)&DSL;WHEN OTHERS=>Q<=Q;END CASE;END IF;END PROCESS;END W;2.编译仿真VHDL文件(1)编译VHDL文件。
D触发器构成的双向移位寄存器引言在数字电路中,双向移位寄存器是一种常见的电路元件,它能够在两个方向上进行数据的移位操作。
而D触发器则是常用的触发器类型之一,它具有存储数据、数据输入和数据输出的功能。
本文将介绍如何使用D触发器构成一个双向移位寄存器,并详细解释其设计原理、原理图以及工作原理等相关内容。
设计原理双向移位寄存器可以实现向左或向右移位的功能。
为了实现这一功能,我们可以使用两个D触发器进行串联,然后通过控制信号来选择数据的方向。
首先,我们需要了解D触发器的工作原理。
D触发器是一种有两个稳定状态的触发器,它有一个数据输入端D,一个时钟输入端CLK和一个输出端Q。
当时钟输入端的时钟信号从低电平变为高电平时,D触发器会将D端的数据存储到内部的状态变量中,并通过输出端Q输出。
借助D触发器的这种特性,我们可以构成一个双向移位寄存器,通过串联两个D触发器。
其中一个D触发器用于存储数据(称为存储触发器),另一个D触发器用于将存储触发器的数据移位(称为移位触发器)。
原理图下图是一个双向移位寄存器的原理图:+-----------------------------------------+| |D ---->| || 存储触发器 |>| +----------------+ |>|D0 | D触发器 | |>| +----------------+ |>| +----------------------+ || | | |CLK --->| | | || | 移位触发器 | |>|Q0 | | |>| | +-----------+ | |>| | |输入选择器 |----+ |>| | +-----------+ | || +----------------------+ |>|D1 |>| |>| Q1 || |+-----------------------------------------+工作原理下面将详细解释双向移位寄存器的工作原理。
双向移位寄存器23系07级马运聪PB07210249 肖阳辉PB07210244实验目的:1掌握移位寄存器的基本原理2利用移位寄存器组成多种循环状态电路实验原理:引脚功能:A、B、C、D为并行输入端,实现并行置数功能。
SL、SR分别为左移和右移输入端。
S0 S1 功能0 0 维持0 1 左移1 0 右移1 1 并行CLK为时钟信号,上升沿触发。
CLR为置零输入端,低电平有效。
QA、QB、QC、QD为寄存器的输出端。
移位功能:1左移:QD、QC、QB、QA依次输出从SL端输入的信号。
2右移:QA、QB、QC、QD依次输出从SR端输入的信号。
3并行:QA、QB、QC、QD输出从并行输入端输入的信号原理图如下:实验分析:1逻辑功能验证时钟信号:利用RS触发器对开关信号进行波形处理,去处开关弹片引起的波形振荡,使得输出波形接近方波信号。
这是由于RS触发器的响应时间为纳秒级,远小于开关的信号震荡周期,能够立即封锁输入端。
1,1,101===S S CR ,CP 上升沿触发。
时钟 并行输入 并行输出 CP D0 D1 D2 D3 Q0 Q1 Q2 Q3 ↑ 0 1 1 1 0 1 1 1 ↑ 1 0 1 1 1 0 1 1 ↑ 1 1 0 1 1 1 0 1 ↑1111111,0,101===S S CR ,右移输入端分别输入1010时钟 右移输入 并行输出CP D SR Q0 Q1 Q2 Q3 ↑ 1 1 0 0 0 ↑ 0 0 1 0 0 ↑ 1 1 0 1 0 ↑110,1,101===S S CR ,左移输入端分别输入1010时钟 左移输入 并行输出CP D SL Q0 Q1 Q2 Q3 ↑ 1 0 0 0 1 ↑ 0 0 0 1 0 ↑ 1 0 1 0 1 ↑11维持与置零功能CR1S0SCP0Q1Q2Q3Q1 0 0 ↑ 不变 0XXX2双向移位寄存器的应用0,1,101===S S CR ,Q3接SR D功能:当Q3=1时,右移输入端输入1。
设计8位双向移位寄存器电路双向移位寄存器是一种能够在输入数据上进行向左或向右移位的电路。
它能够在输入端接收一串数据,并将这些数据连续地向左或向右移位,同时将当前移位的结果输出。
我们可以设计一个8位双向移位寄存器电路,以满足这个需求。
下面是如何设计这个电路的详细步骤:1.确定电路的基本结构:首先,我们需要确定电路的基本功能模块,包括输入输出模块、移位控制模块和移位寄存器模块。
2.输入输出模块:该模块用于接收输入数据并驱动输出数据。
我们需要提供一个8位输入端和一个8位输出端。
输入端可以是一个按钮或开关,用于输入要移位的数据。
输出端可以是一组LED灯,用于显示当前移位的结果。
3.移位控制模块:该模块用于控制移位方向和移位次数。
我们可以使用一个开关来选择移位方向(向左或向右)。
此外,我们需要一个计数器来控制移位次数。
当计数器达到8时,移位操作完成,将重新开始。
4.移位寄存器模块:该模块用于存储输入数据并进行移位操作。
我们可以使用8个D触发器来实现移位寄存器,其中每个D触发器都能够存储一个位的数据。
我们需要将每个D触发器的输出与其相邻的D触发器的输入连接起来,以实现数据的移位。
5.连接各个模块:将输入输出模块、移位控制模块和移位寄存器模块连接在一起,形成一个完整的电路。
确保每个模块的输入输出正确连接,并且信号能够正确传递。
6.进行测试:使用合适的输入数据测试电路。
先选择移位方向,然后输入要移位的数据,观察输出结果是否符合预期。
7.优化电路:根据测试结果来优化电路的性能和稳定性。
可能需要对电路布局进行调整,优化时序逻辑,以确保电路能够在正确的时钟频率下正常工作。
双向移位寄存器电路的设计过程需要考虑许多细节,包括输入输出接口的选择、移位控制逻辑的实现、移位寄存器的构建以及电路的布局和时序。
尽管这里只提供了一个简要的设计步骤,但是通过深入研究每个步骤,我们可以开始设计和实现一个功能完善且可靠的8位双向移位寄存器电路。
实验五移位寄存器及其应用一、实验目的1、掌握中规模4位双向移位寄存器逻辑功能及使用方法。
2、熟悉移位寄存器的应用—实现数据的串行、并行转换和构成环形计数器。
二、实验原理1、移位寄存器是一个具有移位功能的寄存器,是指寄存器中所存的代码能够在移位脉冲的作用下依次左移或右移。
既能左移又能右移的称为双向移位寄存器,只需要改变左、右移的控制信号便可实现双向移位要求。
根据移位寄存器存取信息的方式不同分为:串入串出、串入并出、并入串出、并入并出四种形式。
本实验选用的4位双向通用移位寄存器,型号为CC40194或74LS194,两者功能相同,可互换使用,其逻辑符号及引脚排列如图10-1所示。
图10-1 CC40194的逻辑符号及引脚功能其中 D0、D1、D2、D3为并行输入端;Q、Q1、Q2、Q3为并行输出端;SR为右移串行输入端,SL 为左移串行输入端;S1、S为操作模式控制端;R C为直接无条件清零端;CP为时钟脉冲输入端。
CC40194有5种不同操作模式:即并行送数寄存,右移(方向由Q0→Q3),左移(方向由Q3→Q),保持及清零。
S 1、S和R C端的控制作用如表10-1。
2、移位寄存器应用很广,可构成移位寄存器型计数器;顺序脉冲发生器;串行累加器;可用作数据转换,即把串行数据转换为并行数据,或把并行数据转换为串行数据等。
本实验研究移位寄存器用作环形计数器和数据的串、并行转换。
(1)环形计数器把移位寄存器的输出反馈到它的串行输入端,就可以进行循环移位,如图10-2所示,把输出端 Q3和右移串行输入端SR相连接,设初始状态QQ1Q2Q3=1000,则在时钟脉冲作用下Q0Q1Q2Q3将依次变为0100→0010→0001→1000→……,如表10-2所示,可见它是一个具有四个有效状态的计数器,这种类型的计数器通常称为环形计数器。
图10-2 电路可以由各个输出端输出在时间上有先后顺序的脉冲,因此也可作为顺序脉冲发生器。
EDA课程设计报告题目:32位移位寄存器设计专业班级:电气工程及其自动化101 姓名:完成日期:2012年12月 30 日设计要求双向移位寄存器设计要求:完成以下功能特性的双向32 位移位寄存器。
同时要求有使能端,用1602 显示。
32位移位寄存器设计摘要:移位寄存器是基本的同步时序电路,基本的移位寄存器可以实现数据的串行/并行或并行/串行的转换、数值运算以及其他数据处理功能。
在本设计中使用硬件描述语言Verilog,在EDA 工具QuartussII中,设计32位双向移位寄存器硬件电路,根据设计语言进行功能时序仿真,验证设计的正确性与可行性。
关键词:Verilog QuartusII 移位寄存器1 引言随着社会的发展,科学技术也在不断的进步。
特别是计算机产业,可以说是日新月异,移位寄存器作为计算机的一个重要部件,从先前的只能做简单的左移或右移功能的寄存器到现在广泛应用的具有寄存代码、实现数据的串行-并行转换、数据运算和数据处理功能的移位寄存器。
移位寄存器正在向着功能强,体积小,重量轻等方向不断发展,本设计主要介绍的是一个基于超高速硬件描述语言Verilog对移位寄存器进行编程实现。
现在各种装饰用的流水灯、广告彩灯、宣传画越来越多的出现在人民的生活当中,这些装饰控制设备多数要用移位寄存器来实现。
在计算机中常要求寄存器有移位功能。
如在进行乘法时,要求将部分积右移;在将并行传送的数转换成串行数时也需要移位。
因此,移位寄存器的设计是必要的。
2 总体设计方案移位寄存器的功能即是对每一个上升沿到来时,并且寄存器使能是时,对输入按照移位模式控制信号的要求实现输出的左移和右移。
首先,要完成双向的32位移位寄存器,就首先必须要实现8位移位寄存器作为基础。
其次,在4个8个移位寄存器的基础上达到32位移位寄存器的功能。
第一要有模式控制输入,来控制移位寄存器的移位方向;第二,有使能端,即在什么情况下移位寄存器才可以正常工作,才可以实现模式控制,什么时候置数,什么时候移位,是左移还是右移,这就要求使能是模式控制输入的前提;然后是脉冲控制信号,由要求可知,移位寄存器是在上升沿触发的,即在每一次上升沿到来时,移位寄存器使输入按照模式控制的要求向左或向右移一位;最后输入和输出,都要用到32位并行输入和输出。
电学实验报告模板实验原理移位寄存器是逻辑电路中的一种重要逻辑部件,它能存储数据,还可以用来实现数据的串行-并行转换、数据的运算和处理。
1.寄存器(1)D触发器图1 D触发器图1所示D触发器。
每来一个CLK脉冲,触发器都在该CLK脉冲的上升沿时刻,接收输入数据D,使之作为触发器的新状态。
D触发器的特性方程为(2)用D触发器构成并行寄存器图2 用D触发器构成并行寄存器图2所示为用D触发器构成四位并行寄存器。
为异步清零控制端,高电平有效。
当时,各触发器输出端Q的状态,取决于CLK上升沿时刻的D端状态。
2.移位寄存器(1)用D触发器构成移位寄存器图3 用D触发器构成4位串行移位寄存器图3所示为用D触发器构成的4位串行移位寄存器。
其中左边第一个触发器的输入端接收输入数据,其余的每一个触发器的输入端均与左边相邻的触发器的Q端连接。
当时钟信号CLK的上升沿时刻,各触发器同时接收输入数据。
四位寄存器的所存数据右移一位。
(2)双向移位寄存器74LS194图4 双向移位寄存器74LS194逻辑框图图4 所示为集成电路芯片双向移位寄存器74LS194逻辑框图。
为便于扩展逻辑功能,在基本移位寄存器的基础上增加了左右移控制、并行输入、保持和异步清零等功能。
74LS194的逻辑功能如表1所列。
表13.用移位寄存器构成计数器(1)环形计数器图5 环形计数器如果将移位寄存器的串行移位输出端接回到串行移位输入端,如图5所示。
那么,在时钟CLK的作用下,寄存器里的数据将不断循环右移。
例如,电路的初始状态为,则电路的状态转换图如图6所示。
可以认为,这是一个模4计数器。
图6 环形计数器状态转换图实验内容及步骤1. 用两片74LS74构成四位移位寄存器(1)74LS74引脚图图10 74LS74引脚图(2)用74LS74构成四位移位寄存器图11 用74LS74构成四位移位寄存器实验电路按照图11连接电路。
首先设置,使寄存器清零。
然后,设置,在CLK输入端输入单次脉冲信号当作时钟信号,通过输出端的发光二极管观察的状态,判断移位的效果。
双向移位寄存器1.引言移位寄存器就是指具有移位功能的触发器组,它是在普通寄存器的基础上添加了移位功能的一种特殊的寄存器。
通常,移位功能就是指在寄存器里面存储的二进制数据能够在时钟信号的控制下依次左移或者右移。
移位寄存器是一种非常有用的时序逻辑电路,它常用于数据的串/并转换、并/串转换、数值运算、数据处理以及乘法移位操作等。
移位寄存器按照移位方向来进行分类,可以分类左移移位寄存器、右移移位寄存器和双向移位寄存器等。
本文将介绍双向移位寄存器。
2.VHDL 程序双向移位寄存器的VHDL程序如下:LIBRARY ieee; --打开需要用到的库USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;USE ieee.std_logic_unsigned.all;ENTITY rom_shift IS --实体说明PORT(clk : IN STD_LOGIC;d : IN STD_LOGIC;dir : IN STD_LOGIC;q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END rom_shift;ARCHITECTURE behave OF rom_shift IS --结构体定义SIGNAL qn : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS (clk)BEGINIF (clk'EVENT AND clk='1') THENIF dir='0' THENqn(0)<=d; --将输入数据d赋给最低位FOR i IN 1 TO 3 LOOP --数据由低位向高位移qn(i)<=qn(i-1);END LOOP;ELSEqn(3)<=d; --若dir=‘1’将输入数据d赋给最高位FOR i IN 2 DOWNTO 0 LOOP --数据由高位向低位移qn(i)<=qn(i+1);END LOOP;END IF;END IF;END PROCESS;q<=qn;END behave;3.仿真结果如下:实现功能:由程序可以看出,输入信号有clk,dir,d,其中clk为时钟信号,dir为移位方向控制信号。
一、课程设计的目的与要求
1.设计目的
●熟悉MAXPLUS2/Quartus II软件,掌握软件的VHDL程序输入、程序编译和程序
仿真操作;
●学习利用VHDL语言设计双向移位寄存器电路程序。
2.设计要求
根据设计正文提出的双向移位寄存器功能设置,实现电路设计。
二、设计正文
●双向移位寄存器有三种输入方式:4位并行输入、1位左移串行输入、1位右移串
行输入;
●双向移位寄存器有一种输出方式:4位并行输出。
双向移位寄存器工作过程如下:
●当1位数据从左移串行输入端输入时,首先进入内部寄存器最高位,并在并行输
出口最高位输出,后由同步时钟的上跳沿触发向左移位。
●当1位数据从右移串行输入端输入时,首先进入内部寄存器最低位,并在并行输
出口的最低位输出,后由同步时钟的上跳沿触发向右移位。
双向移位寄存器的输入、输出端口如下:
CLR:异步清零输入端;
SRSI:串行右移输入端;
SLSI:串行左移输入端;
A、B、C、D:4位并行输入端;
QA、QB、QC、QD:4位并行输出端;
S0,S1:两位控制码输入端。
双向移位寄存器的端口功能如下:
当CLR=0时,4位输出端清0;
当CLK=0时,4位输出端保持原来状态不变;
当S=00时,4位输出端保持原来的状态不变;
当S=01时,允许串行右移输入1位数据;
当S=10时,允许串行左移输入1位数据;
当S=11时,允许4位数据从并行端口输入。
VHDL源程序:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL; ——包含库和程序包
entity double_dir_regt is ——定义实体为double_dir_regt
port ( 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; 输出result ARCHITECTURE rtl of double_dir_regt is
signal result1: std_logic_vector(3 downto 0);——设置信号result1使result能作
为
输入使用
begin
result<=result1;
process (clk,clr) ——敏感信号为时钟和清零信号
begin
if (clr='0')then
result1<="0000";
elsif (clk'event and clk='1')then
case s is
when "00"=> ——控制信号为00时实现保持功能
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)<=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看出当s0s1=01时,寄存器执行右移功能,并可看出srsi=1100110011001100,
输出结果result依次由初始状态0000,逐渐右移左端输入端口输入srsi=1100110011001100,此时result依次会出现1000:移入1;1100:移入两个1;0110:移入两个1一个0;再有以后出现的结果0011,1001,1100,0110,0011,1001,1100……..此结果符合真值表要求的右移功能。
1 1 0 0 1 1 0 0 1 1 0 0 1 1
图表2双向移位寄存器左移仿真波形图
由上图2看出当s0s1=10时,寄存器执行左移功能,并可看出slsi=1100110011001100,输出结果result依次由初始状态0000,逐渐右移左端输入端口输入slsi=1100110011001100,此时result依次会出现0001:移入1;0011:移入两个1;0110:移入两个1一个0;再有以后出现的结果1100,1001, 0011,0110, 1100,1001, 0011……..此结果符合真值表要求的左移功能。
控制信号s0s1=11
0 1 1 0
图表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不变,实现保持功能,根据仿真波形图可知,寄存器实现了保持的功能。
综合以上四波形图,寄存器实现了实验要求的保持,右移,左移,并行输入的功能。