1、 可编程器件的 VHDL 文本方式设计实验一、实验目的1、学习使用 ABEL-HDL 语言中的真值表法、逻辑等式法、状态图法设计简单时序电路。2、用 TSP1032 设计“十进制计数器-七段译码器”一体化电路。3、学习使用 ispEXPERT 软件。4、学习 ISP 器件的编程和下载。二、实验所用的仪器和芯片1、ISP1032 1 片2、TEC-5(TDS-2)实验系统 1 台3、万用表或逻辑表 1 个4、示波器 1 台三、实验内容1、用 ABEL 语言中的真值表法、逻辑等式法、状态图法三种方法设计一个十进制计数器。该计数器的时钟输入为 CLK,在 CLK 的上升沿计数。它具有同步复位输入端
2、CLR,当 CLR 为低电平时,在下一个时钟的上升沿,将计数器清零。技术顺序如表所示:2、在 ispEXPERT 环境下,输入三种设计方案,并进行编译、连接、器件适配和下载。3、在 TDS-2 实验台上,使用单脉冲做计数时钟脉冲,复位信号接电平开关。计数器的输出Q3Q2Q1Q0 接 LED 指示灯,检查设计的正确性。4、用 ISP1032 设计“十进制计数器-七段译码器”一体化电路,将七段译码器输出连接到实验台最后一个数字管进行显示。四、实验设计框图:五、实验源代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsi
3、gned.all;entity m10 isPort ( clk : in std_logic;load : in std_logic;din : in std_logic_vector(3 downto 0);qout : out std_logic_vector(3 downto 0);y : out std_logic_vector(6 downto 0);c : out std_logic;clear: std_logic); end m10;architecture func of m10 issignal temp : std_logic_vector(3 downto 0); b
4、eginprocess (clk, load, din)beginif (clear =0) thentemp=“0000“;elsif (load= 0 ) then temp = din;elsif (clkevent and clk= 1) then if (temp = “1001“) then temp = “0000“; else temp = temp+1; end if;end if;end process;qout = temp;c = 1 when temp=“1001“ else 0;y = “1111110“ when temp=“0000“ else -0 “0000
5、110“ when temp=“0001“ else -1“1101101“ when temp=“0010“ else -2“1111001“ when temp=“0011“ else -3 “0110011“ when temp=“0100“ else -4 “1011011“ when temp=“0101“ else -5 “0011111“ when temp=“0110“ else -6 “1110000“ when temp=“0111“ else -7 “1111111“ when temp=“1000“ else -8 “1111011“ when temp=“1001“ else -9“0000000“ ;end func;六、实验软件界面图:七、实验接线图:八、实验心得体会:本次实验在进行的过程中总体比较顺利,包括在 ispEXPERT 环境下,输入三种设计方案,并进行编译、连接、器件适配和下载,下载的时候出了一点小问题,经过同学的帮助完成下载。在将七段译码器输出连接到实验台数字管进行显示的过程中,由于一根导线的连接问题,导致数字有一条边一直无法输出亮的信号,后来经过检查排除问题。