实验四 VHDL设计有时钟使能的两位十进制计数器

发布时间:2018-07-01 09:20:35   来源:文档文库   
字号:

实验四VHDL设计有时钟使能的两位十进制计数器

一、 实验目的

1. 进一步掌握基本组合逻辑电路的实现方法;

2. 进一步了解VHDL顺序语句的设计方法;

3. 学习用if语句和case语句设计译码器的实现方法;

4. 掌握时序逻辑电路的实现方法;

5. 进一步了解VHDL并行语句的设计方法;

6. 学习用process并行语句和串行语句实现计数器的方法;

7. 进一步了解VHDL元件例化的设计方法;

8. 进一步了解图形输入设计方法;

二、 实验内容

1. VHDL设计法设计CT7448BCD七段显示译码器。VHDL文件编辑结束后,以CT7448.VHD为文件名,保存,并编辑波形,进行仿真,验证设计的电路。执行“FILE”菜单的“Greate Default Symbol”命令,为CT7448生成元件符号,作为共享文件。

2. VHDL设计法设计有时钟使能的两位十进制计数器。VHDL文件编辑结束后,以counter8.VHD为文件名,保存,并编辑波形,进行仿真,验证设计的电路。执行“FILE”菜单的“Greate Default Symbol”命令,为有时钟使能的两位十进制计数器生成元件符号,作为共享文件。

3. 将前面实验内容生成的符号图,以图形输入方式新建一个顶层文件,通过连线,完成实验。

三、实验步骤

1. 建立工程

word/media/image1.gif

2、选择Stratix EP1S10F484C5芯片,

word/media/image2.gif

3、创建VHDL文件

word/media/image3.gif

4、输入BCD七段显示译码器程序

library ieee;

use ieee.std_logic_1164.all;

entity CT7448BCD_ljj is

port(a,b,c,d:in std_logic;

ltn,rbin,bin:in std_logic;

oa,ob,oc,od,oe,of1,og,rbon:out std_logic);

end CT7448BCD_ljj;

architecture ljj_7448 of CT7448BCD_ljj is

begin

process(bin)

variable i:std_logic_vector (3 to 0);

variable o:std_logic_vector (6 to 0);

begin

i(0):=a;

i(1):=b;

i(2):=c;

i(3):=d;

if(bin='1')then

case i is

when "0000"=>o:="0111111";

when "0001"=>o:="0000110";

when "0010"=>o:="1011011";

when "0011"=>o:="1001111";

when "0100"=>o:="1100110";

when "0101"=>o:="1101101";

when "0110"=>o:="1111101";

when "0111"=>o:="0100111";

when "1000"=>o:="1111111";

when "1001"=>o:="1101111";

when others=>o:="0000000";

end case;

if(ltn ='0')then

o:="1111111";

end if;

if(rbin='0'and i="0000")then

o:="0000000";

end if;

else

o:="1000000";

end if;

oa<=o(0);

ob<=o(1);

oc<=o(2);

od<=o(3);

oe<=o(4);

of1<=o(5);

og<=o(6);

end process;

end ljj_7448;

5、设置顶层实体名

word/media/image4.gif

6、进行综合编译

word/media/image5.gif

7、新建波形文件

word/media/image6.gif

8、导入引脚

word/media/image7.gif

9.生成网表

word/media/image8.gif

10、进行功能仿真

word/media/image9.gif

word/media/image10.gif

分析波形图可知结果正确。

11生成元件执行“File菜单下的“Greate Symbol Files For Current Files

word/media/image11.gif

12再进行下一个设计,新建VDH文件

word/media/image12.gif

13输入两位十进制计数器的程序

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY COUNTER8_ljj IS

PORT (ENA,CLK,CLR:IN STD_LOGIC;

Q1,Q2:OUT STD_LOGIC_VECTOR (3 DOWNTO 0);

COUT:OUT STD_LOGIC);

END COUNTER8_ljj;

ARCHITECTURE COUNTER8 OF COUNTER8_ljj IS

BEGIN

PROCESS(ENA)

VARIABLE H:STD_LOGIC_VECTOR (3 DOWNTO 0);

VARIABLE L:STD_LOGIC_VECTOR (3 DOWNTO 0);

BEGIN

IF CLR='1' THEN

H:="0000";

L:="0000";

ELSIF(ENA='1')THEN

IF (CLK'EVENT AND CLK='1') THEN

IF L="1111" THEN

L:="0000";

H:=H+1;

IF H="1111" THEN

H:="0000";

COUT<='1';

END IF;

ELSE

L:=L+1;

END IF;

END IF;

END IF;

Q1<=H;

Q2<=L;

END PROCESS;

END COUNTER8

14、设置顶层文件Assignments->Setting

word/media/image13.gif

16进行综合编译

17新建波形文件

word/media/image14.gif

19导入引脚

word/media/image15.gif

18、设置仿真文件

20进行波形仿真

word/media/image17.gif

由波形图可知结果正确。

21生成元件

word/media/image18.gif

22新建原理图文件

23导入新建的元件,连线

word/media/image20.gif

word/media/image21.gif

24进行综合编译

word/media/image22.gif

25新建波形仿真文件

word/media/image23.gif

26、设置引脚

27、生成网表

word/media/image25.gif

28功能仿真

word/media/image26.gif

word/media/image27.gif

本文来源:https://www.2haoxitong.net/k/doc/3af699b9b9f3f90f77c61b67.html

《实验四 VHDL设计有时钟使能的两位十进制计数器.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式