VHDL寄存器组设计

VHDL寄存器组设计
VHDL寄存器组设计

本寄存器组设计需要以下四个代码模块实现

--以下为VHDL寄存器组代码

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

entityregfile is

Port ( DR: in std_logic_vector(1 downto 0);

--SR: in std_logic_vector(1 downto 0);

reset: in std_logic;

DRWr: in std_logic;

clk: in std_logic;

d_input: i n std_logic_vector(15 downto 0);

DR_data: out std_logic_vector(15 downto 0)

--SR_data: out std_logic_vector(15 downto 0)

);

endregfile;

architecturestruct of regfile is

-- components

-- 16 bit Register for register file

componentreg

port (

clr: in std_logic;

D: in std_logic_vector(15 downto 0);

clock: in std_logic;

write: in std_logic;

sel: in std_logic;

Q: out std_logic_vector(15 downto 0)

);

end component;

-- 2 to 4 Decoder

component decoder_2_to_4

port(

sel: in std_logic_vector(1 downto 0);

sel00: out std_logic;

sel01: out std_logic;

sel02: out std_logic;

sel03: out std_logic

);

end component;

-- 4 to 1 line multiplexer

component mux_4_to_1

port (

input0,

input1,

input2,

input3: in std_logic_vector(15 downto 0);

sel: in std_logic_vector(1 downto 0);

out_put: out std_logic_vector(15 downto 0)

);

end component;

signal reg00, reg01, reg02, reg03

:std_logic_vector(15 downto 0);

signal sel00 ,sel01 ,sel02 ,sel03

: std_logic;

begin

Areg00: reg port map(

clr => reset,

D => d_input ,

clock => clk ,

write => DRWr ,

sel => sel00 ,

Q => reg00

);

Areg01: reg port map(

clr => reset,

D => d_input ,

clock => clk ,

write => DRWr ,

sel => sel01 ,

Q => reg01

);

Areg02: reg port map(

clr => reset,

D =>d_input ,

clock => clk ,

write => DRWr ,

sel => sel02 ,

Q => reg02

);

Areg03: reg port map(

clr => reset,

D => d_input ,

clock => clk ,

write => DRWr , sel => sel03 ,

Q => reg03

);

-- decoder

des_decoder: decoder_2_to_4 port map (

sel => DR,

sel00 =>sel00 ,

sel01 =>sel01 ,

sel02 =>sel02 ,

sel03 => sel03

);

mux1: mux_4_to_1 PORT MAP(

Input0 =>reg00 ,

Input1 =>reg01 ,

Input2 =>reg02 ,

Input3 =>reg03 ,

sel => DR ,

out_put =>DR_data

);

--mux2: mux_4_to_1 PORT MAP(

--input0 =>reg00 ,

--input1 =>reg01 ,

--input2 =>reg02 ,

--input3 =>reg03 ,

--sel =>SR ,

-- out_put =>SR_data

-- );

endstruct;

以下为VHDL寄存器代码

libraryieee;

use ieee.std_logic_1164.all;

entityreg is

port

(

clr: in std_logic;

D: in std_logic_vector(15 downto 0);

clock: in std_logic;

write: in std_logic;

sel: in std_logic;

Q: out std_logic_vector(15 downto 0) );

endreg;

architecturebehav of reg is

signalreg :std_logic_vector(15 downto 0):="0000000000000000";

begin

process(clr,clock,reg)

begin

ifclr = '0' then

Q <= reg ;

elsif (clock'event and clock = '1') then

ifsel = '1' and write = '1' then

reg<= D;

Q <= reg;

elsifsel = '1' and write = '0' then

Q <= reg;

end if;

end if;

end process;

endbehav;

以下为VHDL四选一代码

libraryieee;

use ieee.std_logic_1164.all;

entity mux_4_to_1 is

port(

input0,

input1,

input2,

input3: in std_logic_vector(15 downto 0);

sel: in std_logic_vector(1 downto 0);

out_put: out std_logic_vector(15 downto 0) );

end mux_4_to_1;

architecturebehav of mux_4_to_1 is

begin

process(sel)

begin

if (sel = "00") then

out_put<= input0;

elsif (sel = "01") then

out_put<= input1;

elsif (sel = "10") then

out_put<= input2;

elsif (sel = "11") then

out_put<= input3;

end if;

end process;

endbehav;

以下为VHDL二四译码器代码

libraryieee;

use ieee.std_logic_1164.all;

entity decoder_2_to_4 is

port(

sel: in std_logic_vector(1 downto 0);

sel00: out std_logic;

sel01: out std_logic;

sel02: out std_logic;

sel03: out std_logic

);

end decoder_2_to_4;

architecturebehav of decoder_2_to_4 is

begin

process(sel)

begin

if (sel = "00") then

sel00 <= '1';

sel01 <= '0';

sel02 <= '0';

sel03 <= '0';

elsif (sel = "01") then

sel00 <= '0';

sel01 <= '1';

sel02 <= '0';

sel03 <= '0';

elsif (sel = "10") then

sel00 <= '0';

sel01 <= '0';

sel02 <= '1';

sel03 <= '0';

elsif (sel = "11") then

sel00 <= '0';

sel01 <= '0';

sel02 <= '0';

sel03 <= '1';

end if;

end process; endbehav;

实验截图:

仿真结果:

移位寄存器

双向移位寄存器的设计 一、实验目的 利用数字电路设计中移位寄存器的相关知识,通过课程设计更加深入的了解移位寄存器的功能。在计算机中常要求寄存器有移位功能。如在进行乘法时 要求将部分积右移在将并行传送的数转换成串行数时也需要移位。因此 移位寄存器的设计是必要的。 二、硬件要求 主芯片Altera EPM7128SLC84-15,时钟信号,拨码开关。 三、实验内容 设计一个双向移位寄存器 四、实验原理 用VHDL语言描述任意分频数的分频器,并实现占空比任意设置.每当系统时钟上升沿到来时,计数器就加计数一位(可任意设置为N位),当计数值到达预定值时就对分频时钟翻转.这样就会得到一个连续的时钟脉冲. 当移位信号到来时,移位寄存器就对存储的二进制进行移位操作.移位寄存方式可自行设置(可左移,右移,一位移,多位移位寄存)。 五、实验源程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity tdirreg is port (clk: in std_logic; din: in std_logic; dir : in std_logic; op_l: out std_logic; op_r: out std_logic); end tdirreg; architecture a of tdirreg is signal q: std_logic_vector(7 downto 0); begin process(clk) begin if clk'event and clk= '1'then if dir = '0' then q(0) <= din; for i in 1 to 7 loop q(i) <= q(i-1); end loop ; else q(7) <= din; for i in 7 downto 1 loop q(i-1) <=q(i); end loop ;

74LS194左右移位寄存器

74LS194左右移位寄存器 一、移位寄存器 在数字电路中,用来存放二进制数据或代码的电路称为寄存器。按功能 可分为:基本寄存器和移位寄存器。 移位寄存器中的数据可以在移位脉冲作用下一次逐位右移或左移,数据既可以并行输入、并行输出,也可以串行输入、串行输出,还可以并行输入、串行输出,串行输入、并行输出,十分灵活,用途也很广。 二、74LS194双向移位寄存器 目前常用的集成移位寄存器种类很多,其中74LS194为四位双向移存器。 图一 74LS194移位寄存器的引脚图 以上为74LS194的引脚图,其中 D 0~D 3 :并行输入端; Q ~Q 3 :并行输出端; S 0、S 1 :操作模式控制端;:为直接无条件清零端; S R :右移串行输入端 S L :左移串行输入端; CP:时钟脉冲输入端;

表一 74LS194的模式控制和状态输出表 三、移位寄存器型计数器 利用移位寄存器可构成环形和扭环形计数器。可先使S 0=S 1 =1,并行输入预 置数值,再改变S 0和S 1 的电平,实现左移或右移状态。若把移位寄存器的输出 以一定方式反馈到串行输入D SR 端或D SL 端,就可以构成移位寄存器型计数器。 例如,将74LS194的Q 3接到D SR 端,可得到模4的环形计数器(不可自启动); 将Q 3端通过一个非门接到D SR 端,则可得到模8的扭环形计数器(不可自启动)。用一片74LS194及门电路构成一个课实现7分频或8分频器。7分频器的分 频信号由Q 2输出,同时将Q 2 、Q 3 输出通过与非门后接入D SR 端,S S 1 =10。8分频 器的分频信号由Q 3取非后输出,同时将该信号送入D SR 端,S S 1 =10。

8位双向移位寄存器电路设计

目录 摘要 (1) 1 多功能双向移位寄存器 (2) 1.1 基本工作原理 (2) 1.2 基本实现方案 (2) 2 电路图设计 (4) 2.1 电路结构 (4) 2.2 真值表 (4) 3 Verilog描述8位双向移位寄存器 (6) 4 程序仿真 (8) 5 总结 (10) 参考文献 (11)

摘要 移位寄存器是基本的同步时序电路,基本的移位寄存器可以实现数据的串行/并行或并行/串行的转换、数值运算以及其他数据处理功能。在本设计中,使用硬件描述语言Verilog,在EDA工具QuartussII中,设计8位双向移位寄存器硬件电路,根据设计语言进行功能时序仿真,验证设计的正确性与可行性。 关键字:Verilog QuartusII 移位寄存器

8位双向移位寄存器电路设计 1 多功能双向移位寄存器 1.1 基本工作原理 移位寄存器是基本的同步时序电路,基本的移位寄存器可以实现数据的串行/并行或并行/串行的转换、数值运算以及其他数据处理功能。在本设计中定义移位寄存器中的数据从低位触发器移向高位为右移,移向低位为左移。 为了扩展逻辑功能和增加使用的灵活性,某些双向移位寄存器集成电路产品 又附加了并行输入、并行输出等功能。如图1所示是上述几种工作模式的简化示意图。 并行输入 并行输出 右移串行输入(D IR 左移串行输出(D OL 右移串行输出(D OR ) D IL ) 0123 图1 多功能移位寄存器工作模式简图 1.2 基本实现方案 图2所示是实现数据保持、右移、左移、并行置入和并行输出的一种电路方 案。图中的D 触发器m FF 是N 为移位寄存器中的第m 位触发器,在其数据输入端插入了一个4选1数据选择器m MUX ,用2位编码输入10S S 、控制m MUX ,来选择触发器输入信号m D 的来源。当100S S ==时,选择该触发器本身输出的m Q , 次态为1m n n m m Q D Q +==,使触发器保持状态不变;当100,1S S ==时,触发器1m FF -的输出1m Q -被选中,故CP 脉冲上升沿到来时,m FF 存入1m FF -此前的逻辑值,即 1m 1n n m Q Q +-=,而1m +1n n m Q Q +=, 从而实现右移功能;类似地,当101,0S S ==时,m MUX 选择1m Q +,实现左移功能;而当101S S ==时,则选中并行输入数据m DI ,其次 态1 n m m Q DI +=,从而完成并行数据的置入功能。上述四种操作概述于表1,此外,

实验五 移位寄存器

实验五、移位寄存器的设计 一、实验目的 设计并实现一个异步清零同步置数8位并入并出双向移位寄存器电路。 二、实验原理 在数字电路中,用来存放二进制数据或代码的电路成为寄存器。寄存器按功能可分为:基本寄存器和移位寄存器。移位寄存器中的数据可以在移位脉冲作用下一次逐位右移或左移,数据既可以并行输入、并行输出,也可以串行输入、串行输出,还可以并行输入、串行输出,串行输入、并行输出,十分灵活,用途也很广。下面是一个并入串出的8位左移寄存器的VHDL描述: library ieee; use ieee.std_logic_1164.all; port(data_in: in std_logic_vector(7 downto 0); clk: in std_logic; load: in std_logic; data_out:out std_logic); end; architecture one of left8 is signal q: std_logic_vector(7 downto 0); begin process(load,clk) begin if load='1' then q<=data_in; data_out<='Z'; elsif clk'event and clk='1' then for I in 1 to 7 loop 图5-1 q(i)<=q(i-1); end loop; data_out<=q(7); end if; end process; end one; 异步清零同步置数8位并入并出双向移位寄存器电路结构图如图5-1所示。 三、实验要求 输入信号有D[0]~D[7]、DIL、DIR、S、LOAD、CLK和CLR,其中CLK接时钟,其余接拨码开关,输出信号有Q[0]~Q[7],接发光二极管。改变拨码开关的状态,观察实验结果。 实验工程项目命名为rlshift,源程序命名为rlshift8.vhd。 四、实验记录 对比较器实验结果造表,得到其真值表。 五、实验报告要求

实验七 移位寄存器及其应用

实验七 移位寄存器及其应用 一、实验目的 1. 掌握中规模4位双向移位寄存器逻辑功能及使用方法。 2. 熟悉移位寄存器的应用——环形计数器。 二、实验原理 1. 移位寄存器是一个具有移位功能的寄存器,是指寄存器中所存的代码能够在移位脉冲的作用下依次左移或右移。既能左移又有右移的称为双向移位寄存器,只需要改变左、右移的控制信号便可实现双向移位要求。根据移位寄存器存取信息的方式不同分为:串入串出、串入并出、并入串出、并入并出四种形式。 本实验选用的4位双向通用移位寄存器,型号为74LS194或CC40194,两者功能相同,可互换使用,其逻辑符号及引脚排列如图 1所示。 图 1 74LS194的逻辑符号及其引脚排列 其中D 3、D 2、D 1、D 0为并行输入端, Q 3、Q 2、Q 1、Q 0为并行输出端;S R 为右移串行输入端,S L 为左移串行输入端,S 1、S 0为操作模式控制端;CR 为直接无条件清零端;CP 为时钟脉冲输入端。74LS194有5种不同操作模式:即并行送数寄存,右移(方向由Q 3→Q 0),左移(方向由Q 0→Q 3),保持及清零。S 1、S 0和CR 端的控制作用如表 1所示。 表 1

2.移位寄存器应用很广,可构成移位寄存器型计数器;顺序脉冲发生器;串行累加器;可用作数据转换,即把串行数据转换为并行数据,或把并行数据转换为串行数据等。本实验研究移位寄存器用作环形计致器和串行累加器的线路及其原理。 (1) 环形计数器:把移位寄存器的输出反馈到它的串行输入端,就可以进行循环移位, 如图2所示,把输出端Q 0和右移串行输入端S R 相连接,设初始状态Q 3 Q 2 Q 1 Q =1000, 则在时钟脉冲作用下Q 3Q 2 Q 1 Q 将依次变为0100→0010→0001→1000→……,可见它是具 有四个有效状态的计数器,这种类型的计效器通常称为环形计数器。图2电路可以由各个输出端输出在时间上有先后顺序的脉冲,因此也可作为顺序脉冲发生器。

实验七移位寄存器及其应用

实验七移位寄存器及其应用 一、实验目的 1、掌握中规模4位双向移位寄存器逻辑功能及使用方法。 2、熟悉移位寄存器的应用—实现数据的串行、并行转换和构成环形计数器。 二、实验原理 1、移位寄存器是一个具有移位功能的寄存器,是指寄存器中所存的代码能够在移位脉冲的作用下依次左移或右移。既能左移又能右移的称为双向移位寄存器,只需要改变左、右移的控制信号便可实现双向移位要求。根据移位寄存器存取信息的方式不同分为:串入串出、串入并出、并入串出、并入并出四种形式。 本实验选用的4位双向通用移位寄存器,型号为CC40194或74LS194,两者功能相同,可互换使用,其逻辑符号及引脚排列如图7-1所示。 图7-1 CC40194的逻辑符号及引脚功能 其中 D0、D1、D2、D3为并行输入端;Q0、Q1、Q2、Q3为并行输出端;S R为右移串行输 C为直接无条件清零端;CP为时入端,S L为左移串行输入端;S1、S0为操作模式控制端;R 钟脉冲输入端。 CC40194有5种不同操作模式:即并行送数寄存,右移(方向由Q0→Q3),左移(方向由Q3→Q0),保持及清零。 S1、S0和R C端的控制作用如表7-1。

2、移位寄存器应用很广,可构成移位寄存器型计数器;顺序脉冲发生器;串行累加器;可用作数据转换,即把串行数据转换为并行数据,或把并行数据转换为串行数据等。本实验研究移位寄存器用作环形计数器和数据的串、并行转换。 (1)环形计数器 把移位寄存器的输出反馈到它的串行输入端,就可以进行循环移位, 如图7-2所示,把输出端 Q3和右移串行输入端S R 相连接,设初始状态Q0Q1Q2Q3=1000,则在时钟脉冲作用下Q0Q1Q2Q3将依次变为0100→0010→0001→1000→……,如表7-2所示,可见它是一个具有四个有效状态的计数器,这种类型的计数器通常称为环形计数器。图7-2 电路可以由各个输出端输出在时间上有先后顺序的脉冲,因此也可作为顺序脉冲发生器。 图 7-2 环形计数器 如果将输出Q O与左移串行输入端S L相连接,即可达左移循环移位。 (2)实现数据串、并行转换 ①串行/并行转换器 串行/并行转换是指串行输入的数码,经转换电路之后变换成并行输出。 图7-3是用二片CC40194(74LS194)四位双向移位寄存器组成的七位串/并行数据转换电路。

双向移位寄存器

、课程设计的目的与要求 1.设计目的 熟悉MAXPLUS2/Quartus II 软件,掌握软件的VHDL 程序输入、程序编译和程序仿真操作; 学习利用VHDL 语言设计双向移位寄存器电路程序。 2.设计要求根据设计正文提出的双向移位寄存器功能设置,实现电路设计。 、设计正文 双向移位寄存器有三种输入方式: 4 位并行输入、 1 位左移串行输入、 1 位右移串行输 入; 双向移位寄存器有一种输出方式: 4 位并行输出。 双向移位寄存器工作过程如下: 当 1 位数据从左移串行输入端输入时,首先进入内部寄存器最高位,并在并行输出口最高位输出,后由同步时钟的上跳沿触发向左移位。 当 1 位数据从右移串行输入端输入时,首先进入内部寄存器最低位,并在并行输出口的最低位输出,后由同步时钟的上跳沿触发向右移位。 双向移位寄存器的输入、输出端口如下: CLR :异步清零输入端; SRSI :串行右移输入端; SLS I :串行左移输入端; A 、B、C、D: 4 位并行输入端; QA、QB、QC、QD: 4 位并行输出端; SO, 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);

VHDL实验双向移位寄存器(完整版)

VHDL实验双向移位寄存器(完整版) 实验课名称:VHDL硬件描述语言实验项目名称:双向移位寄存器专业名称:电子科学与技术班级:电科二班 学号:***** 学生姓名:**** 教师姓名:**** __2010__年_11_月_14_日 组别_____________________同组同学_______________________ 实验日期 _____年___月___日实验室名称______________成绩_____ 一、实验名称:双向移位寄存器 二、实验目的与要求: 实验目的:设计一个双向移位寄存器,理解移位寄存器的工作原理,掌握 串入\并出端口控制的描述方法。 实验要求:通过VHDL编程,实现双向移位寄存器,要求有1个方向控制端、1个时钟脉冲输入、1个异步清零端、1个数据输入端以及8位的并行数据输出端,具体接口说明如下图所示。 clk:移位寄存器时钟脉冲输入,上升

沿有效; din:串行数据输入端; clr:异步清零信号,高电平有效; dir:方向控制端,要求低电平左移, 高电平右移; dout[7..0]:8位数据并行输出端; 首先在QuartusII上进行功能和时序仿真,之后通过器件及其端口配置下载程序 到SOPC开发平台中。在硬件实现中,要求: 1. 用实验平台的按键实现时钟控制(clk)、方向控制(dir)、清零(clr)以及数据 输入(din): 端口名按键名功能 clk 键7 时钟控制 din 键8 数据输入 clr 键1 异步清零 dir 键5 方向控制 2. 用实验平台的LED发光阵列的LED1,LED8显示并行数据的输出。 三、实验内容:

40194四位双向移位寄存器

40194四位双向移位寄存器 40194 为4 位通用移位寄存器,具有并行输入/并行输出,左移、右移等功能。40194 的工作模式由两个模式选择输入端SELECT0 和SELECT1 确定,当处于SELECT0=SELECT1=“1”时,并行输入端在时钟上升沿并行数据输入端。D0~D3 的数据置入4 位寄存器中并由Q 端输出。进行左移或右移操作时,SHIFTRIGHT IN 和SHIFT LEFT IN 端上的数据在时钟上升沿分别串行移入寄存器中,当 /RESET 为低电平时,输出全零状态。 引出 S1 S0 0 0 保持不变 0 1 实行右移 1 0 实行左移 1 1 运行置数 R 清零;低电平有效

40192------十进制同步加/减计数器(有预置端,双时钟) 简要说明: 40192 为可预置BCD 可逆计数器,其内部主要由四位D 型触发器组成,与一 般计数器不同之处在于加计数器和减计数器分别由两个时钟输入端。40192 具有复位CR、置数控制/LD、并行数据D0~D3、加计数时钟CPu、减计数时钟CP D 等输入,当CR 为高电平时,计数器置零。当/LD 为低电平时,进行预置数操作,D0~D3 上的数据置入计数器中,计数操作由两个时钟输入控制。当CP D=“1”时,在CPu 上跳变时计数器加1 计数;当CPu=“1”时,在CP D 上跳变计数器减1 计数。除四个Q 输出外,40192 还有一个进位输出/CO 和一个借位输出/BO,/CO 和/BO 一般为高电平,只有在加计数模式,当计数器达到最大状态时,/CO 输出一个宽度为半个时钟周期的负脉冲,在减计数模式,当计数器全为零时,/BO 输出一个宽度为半个时钟周期的负脉冲。 引出端符号: CR 清除端;CP D 减计数时钟输入端;CPu 加计数时钟输入端;D0~D3 并行数据输入端;Q0~Q3 计数器输出端;/BO 借位输出端;/CO 进位输出端 V DD 正电源;Vss 地 引出 真值表:

74LS194左右移位寄存器

74LS194左右移位寄存器

4位移位寄存器仿真 其中, 3 D、2D、1D、0D为并行输入端;3Q、2Q、 1 Q、0Q为并行输出端;R S为右移串行输入端;L S为左移串行输入端; 1 S、0S为操作模式控制端;R C为直接无条件清零端;CP为时钟脉冲输入端。 74LS194有5种不同操作模式:并行送数寄存; 右移(方向由 3 Q→0Q);左移(方向由0Q→3Q);保持 及清零。 1 S、0S和R C端的控制作用如表3.10.1所示。 表3.10.1: 输入 输 出功能

移位寄存器应用很广,可构成移位寄存器型计数器;顺序脉冲发生器;串行累加器;可用作数据转换,即把串行数据转换为并行数据,或并行数据转换为串行数据等。 把移位寄存器的输出反馈到它的串行输入端,就可进行循环移位,如图3.10.2所示。把输出端0 Q 和右移串行输入端R S 相连接,设初始状 态3 Q 2Q 1Q 0 Q =1000,则在时钟脉冲作用下,3 Q 2Q 1Q 0 Q 将依次变为0100→0010→0001→1000→……,可见,它是一个具有四个有效状态的计数器,这种类型的计数器通常称为环形计数器。图3.10.2电路可以由各个输出端输出在时间上有先后顺 序的脉冲,因此也可作为顺序脉冲发生器。

图3.10.2 四、实验室操作实验内容: 1.逻辑功能验证 移位寄存器(1)将两块74LS74集成片插入IC 空插座中,按图41(a)连线,接成左移移位寄存器。接好电源即可开始实验。先置数据0001,然 后输入移位脉冲。置数,即把Q 3、Q 2 、Q 1 、Q 置成 0001,按动单次脉冲,移位寄存器实现左移功能。(2)按图42(b)连线,方法同(1)则完成右移移位功能验证。 (a)左移移位

四位双向移位寄存器

实验五四位双向移位寄存器 一、实训目的 1.巩固编译、仿真VHDL文件的方法。 2.掌握VHDL程序顺序语句的应用。 3.掌握四位双向移位寄存器的工作原理。 二、实训器材 计算机与Quartus Ⅱ工具软件。 三、实训指导 (一)实训原理 四位双向移位寄存器真值表如表5-1所示。 表5-1 四位双向移位寄存器的真值表 输入输出 CR M1 M0 DSR DSL CP D3 D2 D1 D0 Q3 Q2 Q1 Q0 0 X X X X X X X X X 0 0 0 0 1 X X X X 0 X X X X Q3 Q 2 Q1 Q0 1 1 1 X X ↑d 3 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 IS PORT(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 IS BEGIN PROCESS(CR,CP,DSR,DSL,M,D) BEGIN IF CR='0' THEN Q<="0000"; ELSIF (CP='1' AND CP'EVENT) THEN CASE M IS WHEN "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文件。 如果有错误,检查并纠正错误,直至最后通过。(2)仿真VHDL文件。 认真核对输入/输出波形,检查设计的功能是否正确。 四位双向移位寄存器的仿真波形图如图5-1所示。

74LS194左右移位寄存器

4位移位寄存器仿真 其中,3D 、2D 、1D 、0D 为并行输入端;3Q 、2Q 、1Q 、0Q 为并行输出端;R S 为右移串行输入端;L S 为左移串行输入端;1S 、0S 为操作模式控制端;R C 为直接无条件清零端;CP 为时钟脉冲输入端。74LS194有5种不同操作模式:并行送数寄存;右移(方向由3Q →0Q );左移(方向由0Q →3Q );保持及清零。 1S 、0S 和R C 端的控制作用如表3.10.1 所示。 表3.10.1:

移位寄存器应用很广,可构成移位寄存器型计数器;顺序脉冲发生器;串行累加器;可用作数据转换,即把串行数据转换为并行数据,或并行数据转换为串行数据等。 把移位寄存器的输出反馈到它的串行输入端,就可进行循环移位,如图3.10.2所示。把输出端0Q 和右移串行输入端R S 相连接,设初始状态3Q 2Q 1Q 0Q =1000,则在时钟脉冲作用下,3Q 2Q 1Q 0Q 将依次变为0100→0010→0001→1000→……,可见,它是一个具有 四个有效状态的计数器,这种类型的计数器通常称为环形计数器。图3.10.2电路可以由各 1. 逻辑功能验证 移位寄存器(1)将两块74LS74集成片插入IC 空插座中,按图41(a )连线,接成左移移位寄存器。接好电源即可开始实验。先置数据0001,然后输入移位脉冲。置数,即把Q 3、Q 2、Q 1、Q 0置成0001,按动单次脉冲,移位寄存器实现左移功能。(2)按图42(b )连线,方法同(1)则完成右移移位功能验证。

(a)左移移位 (b)右移移位 图41D触发器组成移位寄存器的实验线路图

双向8位十六进制移位寄存器_Verilog

双向8位十六进制移位寄存器 设计要求:serinright[3:0]:右移输入十六进制数;serinleft[3:0]:左移输入十六进制数;mode[1:0]: 工作模式输入信号(“00”:清零;“01”:左移;“10”:右移);clk: 时钟输入信号;reg7,reg6, reg5, reg4, reg3, reg2, reg1, reg0:8位十六进制显示输出信号。 解:依据题意,可给出如下的verilog代码: module shift8(serinleft,serinright,mode,clk,reg7,reg6,reg5,reg4,reg3,reg2,reg1,reg0); input [3:0] serinleft; input [3:0] serinright; input [1:0] mode; input clk; output [4:0] reg7,reg6,reg5,reg4,reg3,reg2,reg1,reg0; reg [4:0] reg7,reg6,reg5,reg4,reg3,reg2,reg1,reg0; always @(posedge clk) case (mode) 2'b00: begin reg7 <= 4'h0; reg6 <= 4'h0; reg5 <= 4'h0; reg4 <= 4'h0; reg3 <= 4'h0; reg2 <= 4'h0;

reg1 <= 4'h0; reg0 <= 4'h0; end 2'b01: begin reg7 <= serinleft; reg6 <= reg7; reg5 <= reg6; reg4 <= reg5; reg3 <= reg4; reg2 <= reg3; reg1 <= reg2; reg0 <= reg1; end 2'b10: begin reg7 <= reg6; reg6 <= reg5; reg5 <= reg4; reg4 <= reg3; reg3 <= reg2; reg2 <= reg1; reg1 <= reg0; reg0 <= serinright; end default: begin reg7 <= 4'h0; reg6 <= 4'h0; reg5 <= 4'h0; reg4 <= 4'h0; reg3 <= 4'h0; reg2 <= 4'h0; reg1 <= 4'h0; reg0 <= 4'h0; end endcase endmodule 为了对上述代码进行仿真,可给出如下的testbench。module tb; reg [3:0] dataleft; reg [3:0] dataright; reg clk;

(整理)实验六移位寄存器的设计.

实验六移位寄存器的设计 一、实验目的 1、掌握中规模4位双向移位寄存器逻辑功能及使用方法。 2、熟悉移位寄存器的应用—实现数据的串行、并行转换和构成环形计数器。 二、实验预习要求 1、复习有关寄存器及串行、并行转换器有关内容。 2、查阅CC40194、CC4011及CC4068 逻辑线路。熟悉其逻辑功能及引脚排列。 3、在对CC40194进行送数后,若要使输出端改成另外的数码,是否一定要使寄存器清零? 4、使寄存器清零,除采用R C输入低电平外,可否采用右移或左移的方法?可否使用并行送数法?若可行,如何进行操作? 5、若进行循环左移,图6-4接线应如何改接? 6、画出用两片CC40194构成的七位左移串 /并行转换器线路。 7、画出用两片CC40194构成的七位左移并 /串行转换器线路。 三、实验设备及器件 1、+5V直流电源 2、单次脉冲源 3、逻辑电平开关 4、逻辑电平显示器 5、CC40194×2(74LS194)CC4011(74LS00) CC4068(74LS30) 四、设计方法与参考资料 1、移位寄存器是一个具有移位功能的寄存器,是指寄存器中所存的代码能够在移位脉冲的作用下依次左移或右移。既能左移又能右移的称为双向移位寄存器,只需要改变左、右移的控制信号便可实现双向移位要求。根据移位寄存器存取信息的方式不同分为:串入串出、串入并出、并入串出、并入并出四种形式。 本实验选用的4位双向通用移位寄存器,型号为CC40194或74LS194,两者功能相同,可互换使用,其逻辑符号及引脚排列如图6-1所示。 其中D0、D1、D2、D3为并行输入端;Q0、Q1、Q2、Q3为并行输出端;S R为右移串行输 C为直接无条件清零端; 入端,S L为左移串行输入端;S1、S0为操作模式控制端;R 精品文档

实验1 双向移位寄存器的设计

实验1 双向移位寄存器的设计 一 、实验目的 1.学习时序逻辑电路; 2.学习寄存器的原理; 二 、实验内容 1.编写一个清零输入,可以双向移位的寄存器的Verilog 代码并仿真,编译下载验证。 三、 实验要求 1.根据参考内容,用Verilog HDL 语言进行双向移位寄存器的设计。 2.用Quartus II 或 Modelsim 对其进行功能或时序进行波形仿真验证; 3.下载到FPGA 开发板验证; 四、 实验环境 Quartus prime 五、 实验原理 移位寄存器是基本的同步时序电路,基本的移位寄存器可以实现数据的串行/并行或并行/串行的转换、数值运算以及其他数据处理功能。但有时候需要对移位寄存器的数据流向加以控制,实现数据的双向移动,其中一个方向称为右移,另一个方向称为左移,这种移位寄存器就称为双向移位寄存器。 根据国家标准规定,逻辑图中的最低有效位(LSB)到最高有效位(MSB)的电路排列顺序应从上到下,从左到右。因此定义移位寄存器中的数据从低位触发器移向高位为右移,移向低位为左移。 为了扩展逻辑功能和增加使用的灵活性,某些双向移位寄存器集成电路产品又附加了并行输入、并行输出等功能。下图所示是上述几种工作模式的简化示意图。 并行输入 并行输出 右移串行输入(D IR 左移串行输出(D OL 右移串行输出(D OR ) D IL ) 0123 图1 双向移位寄存器工作模式简图

表1 双向移位寄存器功能表 表2 8位双向移位寄存器真值表 六、实验步骤 1.打开Quartus prime软件,进入系统页面后点击“New Project Wizard”新建一个工程; 2.创建工程后,在工程中再新建一个文件。在这个文件中编写实验程序,其步骤是选择菜单File-New-Verilog HDL file 3. 编译前对整个工程进行参数设置。首先在工程名称上右键,单击“Settings”,选择“Simulation”,进行一系列的参数设置。 4. 对工程进行编译、仿真、验证。 七、实验程序(或者电路图) module shift (S1,S0,D,Dsl,Dsr,Q,CP,CR); input S1,S0; //Select inputs input Dsl,Dsr; //serial data input input CP,CR; //Clock and Reset input [7:0]D; //Parallel Data input output [7:0]Q; //Register ouput reg[7:0]Q;

移位寄存器及其应用

实验八移位寄存器及其应用 一、实验目的 1.掌握4位双向移位寄存器74LS194的逻辑功能及使用方法。 2.熟悉移位寄存器的应用——构成环形计数器和串行累加器。 二、预习要求 1.复习寄存器及累加运算的有关内容。 2.了解74LS194的逻辑功能、移位寄存器构成环形计数器和串行累加器的方法。 三、实验原理 1.移位寄存器 是指寄存器中所存的代码能够在移位脉冲的作用下依次左移或右移。既能左移又能右移的称为双向移位寄存器。根据移位寄存器存取信息的方式不同分为:串入串出、串入并出、并入串出、并入并出四种形式。本实验选用的是4位双向移位寄存器,型号为74LS194(TTL器件)或CC40194 (CMOS器件),两者功能完全相同,可以互换使用。74LS194的最高时钟脉冲为36MHZ,其逻辑符号及引脚排列如图8-1 所示: 图8-1 74LS194的逻辑符号及引脚排列 其中:D0~D1为并行输入端;Q0~Q3为并行输出端;S R――右移串行输入端;S L--左移串行输入端;S1、S0――操作模式控制端;――为直接无条件清零端;CP――为时钟脉冲输入端。74LS194模式控制及状态输出如表8.1所示:

表8.1 LS194模式控制及状态输出表 2、移位寄存器的应用 移位寄存器的应用范围很广,可构成移位寄存器型计数器;顺序脉冲发生器;串行累加器;可用作数据转换,即把串行数据转换为并行数据,或把并行数据转换为串行数据等。本实验研究移位寄存器用作环形计数器和串行累加器的线路及其原理。 (1)环形计数器 把移位寄存器的输出反馈到它的串行输入端,就可以进行循环移位,如图8-2所示。把输出端Q0和右移串行输入端S R相连,设初态为Q3Q2Q1Q0=1000,则在CP作用下,模式设为右移,输出状态依次为: 1000 →0100 →0010 →0001 图8-2所示电路是一个有四个有效状态的计数器,这种类型计数器通常称为环形计数器。同时输出端输出脉冲在时间上有先后顺序,因此也可以作为顺序脉冲发生器。 图8-2 4位环形计数器 (2)串行累加器

74194 TTL 四位双向通用移位寄存器

? 2000 Fairchild Semiconductor Corporation DS006407 https://www.360docs.net/doc/da6691554.html, August 1986 Revised March 2000 DM74LS194A 4-Bit Bidirectional Universal Shift Register DM74LS194A 4-Bit Bidirectional Universal Shift Register General Description This bidirectional shift register is designed to incorporate virtually all of the features a system designer may want in a shift register; they feature parallel inputs, parallel outputs,right-shift and left-shift serial inputs, operating-mode-con-trol inputs, and a direct overriding clear line. The register has four distinct modes of operation, namely:Parallel (broadside) load Shift right (in the direction Q A toward Q D )Shift left (in the direction Q D toward Q A ) Inhibit clock (do nothing) Synchronous parallel loading is accomplished by applying the four bits of data and taking both mode control inputs,S0 and S1, HIGH. The data is loaded into the associated flip-flops and appear at the outputs after the positive transi-tion of the clock input. During loading, serial data flow is inhibited. Shift right is accomplished synchronously with the rising edge of the clock pulse when S0 is HIGH and S1 is LOW.Serial data for this mode is entered at the shift-right data input. When S0 is LOW and S1 is HIGH, data shifts left synchronously and new data is entered at the shift-left serial input. Clocking of the flip-flop is inhibited when both mode control inputs are LOW.Features s Parallel inputs and outputs s Four operating modes: Synchronous parallel load Right shift Left shift Do nothing s Positive edge-triggered clocking s Direct overriding clear Ordering Code: Devices also available in Tape and Reel. Specify by appending the suffix letter “X” to the ordering code. Connection Diagram Order Number Package Number Package Description DM74LS194AM M16A 16-Lead Small Outline Integrated Circuit (SOIC), JEDEC MS-012, 0.150 Narrow DM74LS194AN N16E 16-Lead Plastic Dual-In-Line Package (PDIP), JEDEC MS-001, 0.300 Wide

移位寄存器的工作原理

移位寄存器的工作原理是什么? 把若干个触发器串接起来,就可以构成一个移位寄存器。由4个边沿D 触发器构成的4位移位寄存器逻辑电路如图8.8.1所示。数据从串行输入端D1输入。左边触发器的输出作为右邻触发器的数据输入。假设移位寄存器的初始状态为0000,现将数码D3D2D1D0(1101)从高位(D3)至低位依次送到D1端,经过第一个时钟脉冲后,Q0=D3。由于跟随数码D3后面的数码是D2,则经过第二个时钟脉冲后,触发器FF0的状态移入触发器FF1,而FF0变为新的状态,即Q1=D3,Q0=D2。依此类推,可得4位右向移位寄存器的状态, 如表8.8.1所示。 由表可知,输入数码依次地由低位触发器移到高位触发器,作右向移动。经过4个时钟脉冲后,4个触发器的输出状态Q3Q2Q1Q0与输入数码D3D2D1D0相对应。为了加深理解,在图8.8.2中画出了数码1101(相当于D3=1,D2=1,D1=0 ,D0=1)在寄存器中移位的波形,经过了4个时钟脉冲后,1101出现在寄存器的输出端Q 3Q2Q1Q0。这样,就可将串行输入(从D1端输入)的数码转换为并行输出(从Q3、Q2、Q1、Q0端输出)的数码。这种转换方式特别适用于将接收到的串行输入信号转换为并行输出信号,以便于打印或由计算机 处理。 在图8.8.3中还画出了第5到第8个时钟脉冲作用下,输入数码在寄存器中移位的波形(如图8.8.2所示)。由图可见,在第8个时钟脉冲作用后,数码从Q3端已全部移出寄存器。这说明存入该寄存器中的数码也可以从Q端串行输出。根据需要,可用更多的触发器组成多位移位寄存器。

除了用边沿D 触发器外,还可用其他类型的触发器来组成移位寄存器,例如,用主从JK 触发器来组成移位寄存器,其级间连接方式如图8.8.3所示。根据JK触发器的特征方程,由图8.8.3可得: FF2和FF3的接法与FF1完全相似,所以各JK 触发器均以D 触发器的功能工作,图8.8.3和图8.8.1所示 电路具有相同的功能。 双向移位寄存器: 若将图8.8.1所示电路中各触发器间的连接顺序调换一下,让右边触发器的输出作为左邻触发器的数据输入,则可构成左向移位寄存器。若再增添一些控制门,则可构成既能右移(由低位向高位)、又能左移(由高位至低位)的双向移位寄存器。图8.8.4是双向移位寄存器的一种方案,它是利用边沿D 触发器组成的,每个触发器的数据输入端D 同与或非门组成的转换控制门相连,移位方向取决于移位控制端S的状态。 当S=1时,D0=DSR,D1=Q0,即FF0的D0端与右移串行输入端DSR接通,FF1的D1端与Q0接通,在时钟脉冲CP 作用下,由DSR端输入的数据将作右向移位;反之,当S=0时,D0=Q1 ,D1=Q2,在时钟

相关主题
相关文档
最新文档