并行输出移位寄存器.ppt
文本预览下载声明
第十二讲 移位寄存器设计 主讲人:方跃春 长沙民政学院电子信息工程系 内容: 一、移位寄存器及其分类二、用VHDL描述四位串行输入、并行输 出移位寄存器 三、用VHDL描述四位并/串行输入、并行 输出的移位寄存器 问题思考 怎样实现4bit串行(serial)输入数据转换成并行(parallel)输出? 采用四个D触发器实现四位数据的串并转换 一、移位寄存器及其分类 1、移位寄存器:具有存放数码并使数码逐位右移或左移的电路称作移位寄存器。 2、分类: (1)按数码移动方向分: 左移;右移。 (2)按数码输入、输出方式分: 串行输入串行输出、串行输入并行输出 并行输入串行输出、并行输入并行输出 二、用VHDL描述四位串行输入、并行输出移位寄存器 二、用VHDL描述四位串行输入、并行输出移位寄存器 四位串行输入、并行输出移位寄存器程序: LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY shift4_v IS PORT(Di, Clk,ENA : IN STD_LOGIC; Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ); END shift4_v ; ARCHITECTURE a OF shift4_v IS Signal tmp : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS (Clk) BEGIN IF (ClkEvent AND Clk=1) THEN IF ENA=1 THEN tmp(3)=Di; FOR i IN 1 TO 3 LOOP tmp(3-i)=tmp(4-i); END LOOP; END IF; END IF; END PROCESS; Q(3)=tmp(3); Q(2)=tmp(2); Q(1)=tmp(1); Q(0)=tmp(0); END a; 三、用VHDL描述四位并/串行输入、并行输出的移位寄存器 脉冲输入:Clk 移位控制端:Sh 并行装载端:Load 串行数据输入:Di 并行数据输入:D[3..0] 并行数据输出:Q[3..0] 四位并/串行输入、并行输出的移位寄存器程序: LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY shift4_1v IS PORT(Di, Sh,Clk,LOAD : IN STD_LOGIC; D : IN STD_LOGIC_VECTOR(3 DOWNTO 0); Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END shift4_1v ; ARCHITECTURE a OF shift4_1v IS Signal tmp : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS (Clk) BEGIN IF (ClkEvent AND Clk=1) THEN IF Sh=1 THEN tmp(3)=Di; FOR i IN 1 TO 3 LOOP tmp(3-i)=tmp(4-i); END LOOP; ELSIF LOAD=1 THEN FOR i IN 0 TO 3 LOOP tmp(3-i)=D(3-i); END LOOP; END IF; END IF; END PROCESS; Q(3)=tmp(3); Q(2)=tmp(2);Q(1)=tmp(1);Q(0)=tmp(0); END a; 总结: 1、移位寄存器是数据通信电路中常用的逻辑电路,有串入-串出、串入-并出、并入-串出、并入-并出等工作方式。 2、用VHDL描述移位寄存器可用IF语句来描述,编译后会生成若干位触以器。 作业: 1、用VHDL描述八位并/串行输入、并行输出的移位寄存器,写出完整程序。 2、若要增加异步清零功能,又怎样描述?修改程序。 * * Di:1 0 1 1 . . . 1 1 0 1 Q3 Q2 Q1 Q0 串-并转换 · · · · D2 ENA Q2 CP D1 ENA Q1
显示全部