实验四 八位双向移位寄存器的设计
- 格式:docx
- 大小:65.49 KB
- 文档页数:3
实验四 八位双向移位寄存器的设计
一、实验目的
1、掌握八位双向移位寄存器的基本原理。
2、掌握八位双向移位寄存器的VHDL描述。
二、实验内容
1、完成八位双向移位寄存器的VHDL设计;
2、正确设置仿真激励信号,全面检测设计逻辑;
3、综合下载,进行硬件电路测试。
三、实验原理
八位双向移位寄存器具有数据左移、右移和预置数功能。其输出Q和置数输
入DATA为八位口;方式控制输入MODE为2位口。CLK为时钟信号(输入);RESET
为复位信号(输入,高电平有效)。
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity e is
PORT(
MODE:in std_logic_vector(1 downto 0);
DIN:in std_logic_vector(7 downto 0);
RST,CLK:in std_logic;
DOUT:out std_logic_vector(7 downto 0)
);
end e;
architecture behav of e is
SIGNAL data:std_logic_vector(7 downto 0);
begin
process(CLK,RST,MODE,DIN)
begin
if RST ='1'then
ELSE
if CLK'event and CLK='1'then data<=(others=>'0');
CASE(MODE)IS
when"00"=> data<=(others=>'0');
when"01"=>data<=DIN;
when"10"=>data<=data(6 downto 0) & data(7);
when"11"=>data<=data(0) & data(7 downto 1);
when others=>null;
end case;
end if;
END IF;
end process;
DOUT<=data;
end ARCHITECTURE behav;
Clk:10ns RST:100ns
四、实验步骤
1.对文件进行建立,是txt
2.添加相关程序,保存文件位vhd
3.设置工程为底层
4.对程序进行编译
5.没有错后对波形图进行新建
6.设置输入得出输出波形
五、实验总结
本次实验是关于八位双向移位寄存器的实验,感觉颇有难度,对于单向移位
寄存器的程序显然易见并不困难,但再加上一个方向时,有需要增加case语句
衔接,以及端口的设置都需要注意,总之实验过程删删减减,都出现很多问题,
如其中逻辑不对劲,和书写不规范,以及很多警告。但经此实验,对于其中语句
的应用更加深入,以及自身对vhdl的理解。