时序逻辑电路实验
1、实验名称:可逆计数器设计
2、实验目的:
1)进一步熟练ISE开发工具,巩固FPGA开发的基本步骤,掌握功能仿真方法; 2)掌握时序逻辑电路设计的一般方法,掌握时钟分频程序设计方法; 3)理解VHDL的层次结构设计; 4)巩固程序下载方法;
5)了解开发板时钟资源,以及时钟分频方法。
3、实验内容:
3.1、建立工程文件,顶层文件为原理图;
3.2、首先实现如下基本的可逆计数器
可逆计数器电路图及功能表如图3-1和表3-1所示。
clr
en Up/Dn clk
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
图3-1 可逆计数器原理图
表3-1 可逆计数器功能表 clr 1 0 0 0
编写计数器模块主程序模块如下 en X 0 1 1 Up/Dn X X 1 0 clk X X ↑ ↑ Y7 ~ Y0 00000000 停止计数 计数器+1操作 计数器-1操作
3.3实现如下图所示的分频器
计数时钟频率为1Hz,通过对50Mhz系统时钟分频得到,分频电路编写一个模块,如图3-2所示;
分频模块程序如下,要求输入为50MHz系统时钟,输出为1Hz计数时钟
3.4扩展:实现二选一选择器
可以对按键次数进行计数(按键为BTN_SOUTH),即通过SW2选择计数源。二选一电路如图3-3所示。
编写2选1模块如下,输入为按键、1Hz时钟和开关SW2,输出为计数源;
3.5、资源使用要求及实现方法:
1)用LED0~LED7作为计数器输出显示,LED7为高位,LED0为低位; 2)SW0为计数方向up/dn控制; 3)SW1为计数允许EN控制端; 4)BTN_EAST为clr按钮;
5)计数时钟频率为1Hz,通过对50Mhz系统时钟分频得到,分频电路编写一个模块,如上图3-2所示;
6)扩展:可以对按键次数进行计数(按键为BTN_SOUTH),即通过SW2选择计数源。二选一电路如上图3-3所示。
7)将图3-1,3-2,3-3三个模块连接起来,构成一个完整计数器。如图3-4所示。
3.6、对各个器件进行引脚约束。
3.7.将程序到器件上进行验证。