文档介绍:学生实验报告
实验课名称:VHDL硬件描述语言
实验项目名称:双向移位寄存器
专业名称:电子科学与技术
班级:
学号:
学生姓名:
教师姓名:
2010年__11__月__13__日
实验日期2010年11月13_日实验室名称______________成绩_____
一、实验名称:
双向移位寄存器
二、实验目的与要求:
设计一个双向移位寄存器,理解移位寄存器的工作原理。掌握串入/并出端口控制的描述方法。
在QuartusII上进行功能和时序仿真,之后通过器件及其端口配置下载程序到SOPC开发平台中。
1,用实验平台的按键实现时钟控制(clk),方向控制(dir),清零(clr)以及数据输入(din)。
2,用实验平台上的LED发光阵列的LED1~LED8显示并行数据的输出。
三、实验内容:
通过VHDL编程,实现双向移位寄存器,要求有一个方向控制端,一个脉冲输入,一个异步清零端,一个数据输入端以及8位的数据输出端。
1. 打开QuartusII软件,建立一个新的工程。
2. 建立VHDL文件。
3. 建立矢量波形文件。
4. 进行功能仿真。
5. 进行时序仿真。
6. 器件的下载。
四、实验条件:
1. WindowsXP操作系统
2. QuartusII EDA开发系统
3. 杭州康芯SOPC硬件开发平台
五、实验原理:
通过VHDL编程,实现双向移位寄存器,要求有一个方向控制端,一个脉冲输入,一个异步清零端,一个数据输入端以及8位的数据输出端。
具体的接口如下所示:
clk:移位寄存器时钟脉冲输入,上升沿有效。
din:串行数据输入端。
clr:异步清零信号,高电平有效。
dir:方向控制端,要求高电平右移,低电平左移。
dout[7..0]:8位数据并行输入端。
硬件设置原理:
根据要求设置个端口,键7为时钟控制端,键8为数据输入端,键1为方向控制端,键5为异步清零。用LED发光阵列的LED1~LED8显示并行数据的输出,依次相对应为dout[7]……dout[0].根据模式7对应的开发系统I/O管脚映射表以及I/O模式7示意图为每一个端口指定引脚。
调试原理:
软件调试:
当设置为左移时,低位依次将自己的值给高一位,最后将din给q[0],然后将q赋值给dout;
当设置为右移时,高位依次将自己的值给低一位,最后将din给q[7],然后将q赋值给dout;
观察结果是否符合结果。在验证结果时,首先进行功能仿真,观察结果,调试程序,在进行时序仿真。
硬件调试:
根据端口对应设置端口,设置dir值和输入,观察LED1~LED8改变是否和要求一致;再设置键5异步清零端,观察LED1~LED8的变化。
六、源代码:
library ieee;
use ;
use ;
entity d_reg is
port(clk,din,clr,dir:in std_logic;
dout:out std_logic_vector(7 downto 0));
end entity d_reg;
architecture one of d_reg i