begin
process(pn,din0,din1,din2,din3,q00,q01,q02,q03,q10,q11,q12,q13,q20,q21,q22,q23,q30,q31,q32,q33) begin case pn is
when \when \when \when \when \when others => dout0<=q30;dout1<=q31;dout2<=q32;dout3<=q33; end case; end process; end;
图7.选择模块封装图
10
3.8 数显模块
数显模块由四个七段数码管显示构成,实现的功能是将选择器输送过来的信号转化
成数码管上显示的数字时钟,由于实验板CycloneⅢ EP3C16F484C6 的数码管是共阳数码管,所以各个七位数所对应的数字如下:
\\\\\ \\\\\实现数显模块程序如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY shumaguan IS PORT(
DIN:IN STD_LOGIC_VECTOR(3 DOWNTO 0); led:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); END shumaguan;
ARCHITECTURE ART OF shumaguan IS BEGIN
PROCESS(DIN) BEGIN CASE DIN IS
WHEN \
11
--0
WHEN \ WHEN \ WHEN \ WHEN \ WHEN \
--1 --2 --3 --4 --5
WHEN \ --6 WHEN \ WHEN \ WHEN \ WHEN OTHERS=>led<=\ END CASE; END PROCESS;
END ARCHITECTURE ART;
--7 --8 --9
图8.数显模块封装图
12
3.9 数字秒表的总原理图
图9.数字秒表总原理图
如图10所示,输入有四个,分别是:脉冲信号CLK,清零信号CLR,记录信号RST,回放信号RSH。输出即是四个七段数码管的显示
图10.数字秒表总体封装图
4 仿真调试
4.1 分频器模块的仿真调试
由于需求的仿真是500000分频,软件无法显示完全,所以将500000分频改为4分
频进行程序的仿真调试
图11.分频器模块的仿真
13
4.2 计数器模块的仿真调试
计数器由于是十进制,所以每次计数到“1001”时,重新归零,并且产生一个进位
信号。
4.3
图12.十进制计数器的仿真
记录模块的仿真调试
记录模块的主要输入是记录信号的脉冲,输出信号则是使能EN,每来一个记录信
号的脉冲,使能信号EN加一,不同的使能信号EN对应不同的寄存器组。
图13.记录模块的仿真
4.4 寄存器模块的仿真
寄存器模块是根据使能信号EN来判断使用哪一组寄存器,图中所示是第一组寄存器模块的仿真
14