当前位置:文档之家› 2.4.1 并行输入串行输出

2.4.1 并行输入串行输出

2.4.1 并行输入串行输出移位寄存器实验
1.步骤:
(1)新建工程SHIFT8R;
(2)新建VHDL文件SHIFT8R.vhd,编写程序如下:
--带有同步并行预置功能的8位右移移位寄存器:SHIFT8R.VHD
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY SHIFT8R IS
PORT( CLK , LOAD : IN STD_LOGIC ; --CLK是移位时钟信号、LOAD是并行数据预置使能信号DIN : IN STD_LOGIC_VECTOR(7 DOWNTO 0); --DIN是8位并行预置数据端口
QB : OUT STD_LOGIC ); --QB是串行输出端口
END ENTITY SHIFT8R;
ARCHITECTURE BEHAV OF SHIFT8R IS
BEGIN
PROCESS(CLK,LOAD)
VARIABLE REG8 : STD_LOGIC_VECTOR( 7 DOWNTO 0);
BEGIN
IF CLK'EVENT AND CLK='1' THEN
IF LOAD='1' THEN
REG8 := DIN; --装载新数据
ELSE
REG8(6 DOWNTO 0):= REG8(7 DOWNTO 1);
-- 此语句表明:一个时钟周期后将上一时钟周期移位寄存器中的高7位
-- 二进制数赋给此寄存器的低7位
END IF;
END IF;
QB <= REG8(0);
END PROCESS; -- 输出最低位
END ARCHITECTURE BEHAV;
(3)保存后编译;
(4)新建波形图SHIFT8R.vwf,编辑输入波形;
(5)进行功能仿真;
(6)进行时序仿真;
(7)资源分配;
(8)编译后,生成可以配置到CPLD的POF文件。

2.功能仿真结果及分析:
输入:DIN[7:0]8为并行输入信号
输出:QB为串行输出信号
控制:CLK为时钟信号
LAOD并行数据预置使能信号
(1)功能仿真:
波形分析:LOAD=1,CLK=1,输入并行信号“01001101”
LOAD=0,每输入一个脉冲,右移一位并从QB 端输出,依次为“01001101” 因此,该设计可以实现并行输入串行输出的右移移位功能。

(2)时序仿真:
串行输出第二位延时8.237ns
3.资源分配
0 1 1 0 0 0 1 1。

相关主题