EDA实验报告(quartus2仿真) 联系客服

发布时间 : 星期四 文章EDA实验报告(quartus2仿真)更新完毕开始阅读

从图2.3.7可以看出oclk进位信号成功实现与清零的同步,消除了电路冒险。

此外,我们还考虑了从另一个方面来解决这个问题。由于是采用可编程逻辑器件(PLD)来实现电路设计,硬件描述语言(HDL,Hardware Description Language)可以描述硬件电路的功能,我们采用应用最为广泛的VHDL语言进行了模60计数器的设计,成功的消除了电路中的冒险。以下为其源代码: library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all; 库和包集合说明语句

ENTITY mod60vhdl IS PORT (

ci :IN std_logic;

nreset :IN std_logic; 实体描述部分 load :IN std_logic;

d :IN std_logic_vector(7 downto 0); clk :IN std_logic; co :out std_logic;

qh :buffer std_logic_vector(3 downto 0); ql :buffer std_logic_vector(3 downto 0) );

END mod60vhdl;

ARCHITECTURE behave OF mod60vhdl IS BEGIN

co<='1' when(qh=\结构体描述

PROCESS(clk,nreset) 进程及敏感表 BEGIN

IF(nreset='0')THEN 清零端低电平清零 qh<=\ql<=\

ELSIF(clk 'EVENT AND clk='1')THEN 时钟信号上升沿来临 if(load='1')then 置数端高电平同步置数 qh<=d(7 downto 4);

9

ql<=d(3 downto 0);

elsif(ci='1')then

if(ql=9)then 各位计满后自动清零 ql<=\if(ql=5)then qh<=\else

qh<=qh+1; 未计满则加计数 end if;

else ql<=ql+1; end if; END IF; END IF;

END PROCESS; 结束进程 END behave; 结束结构体

可见,采用VHDL进行设计,不局限于仅有的元器件,相比原理图设计方式,设计的灵活性大大增加,并且思路清晰,逻辑严密,设计起来省时省力。

图2.3.10 计数电路的总连接图

可以发现,quartus2的封装功能使设计过程条理清晰,连线简洁,便于识图。这既是自顶向下模块化设计方法的基本要求,也是其必然结果。

2.3.3 译码显示电路

从计数电路送出的各位计数信号为8421BCD码,不能直接送到数码管进行显示。首先要经过译码电路将其译为对应的段码,才能使数码管显示正确的数字。此外,为节省电能和电路连线,需采用动态显示电路。其基本原理为:在任一时钟周期,只有一个数码管被点亮,并显示其对应的数字。六个数码管及其段码在选通电路的作用下轮流被点亮和传输。由于人眼的视觉暂留效应,当选通的频率足够快时(>60HZ),人眼将会感觉到六位数码管被同时点亮。以下分别讨论译码和显示电路的具体设计。

10

图 2.3.11 七段数码管的结构

a b c d e f g

f

a

b g e

c d

数码管的根据点亮时公共端的电平分为共阴和共阳。显示译码器的功能是将表示数字的BCD码转换为七段显示码。

以下为其真值表:

D C B A a b c d e f g 显示 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 1 1 1 0 0 1 0 0 0 1 0 0 1 0 2 0 0 1 1 0 0 0 0 1 1 0 3 0 1 0 0 1 0 0 1 1 0 0 4 0 1 0 1 0 1 0 0 1 0 0 5 0 1 1 0 0 1 0 0 0 0 0 6 0 1 1 1 0 0 0 1 1 1 1 7 0 0 0 0 0 0 0 0 0 0 0 8 1 0 0 1 0 0 0 0 1 0 0 9

图2.3.12 7447译码器

化简后表达式为:

a=ABCD+ABC b=ABC+ABC c=ABC

d=ABC+ABC+ABCD e=A+ABC

f=AB+ABCD+ABC g=ABC+BCD

其中LTN、RBIN以及BIN等管脚与消隐、灯测试有关,本次设计不予考虑,都置为高电位。

11

动态显示部分的基本框图如下:

图 2.3.13 动态显示电路框图

DIG08421BCDSLDIG1SHMLMHHLHHDIG0DIG1DIG2DIG3DIG4DIG5DIG58421BCDabcdefg24选4MUX显示译码器7447DIG2DIG3A2 A1 A0CLK2译码器DIG4计数器74138

计数器在时钟信号的作用下,产生模为6的BCD码计数信号,分别送到24选4MUX和74138中作为地址信号。24选4数据选择器根据A2A1A0的值选择SL、SH、ML、MH、HL、HH中的一路数据送到7447译码器进行译码,同时74138译码器将A2A1A0的值译码后分别输出到六片数码管的共阴端,作为片选信号。这样,在时钟信号CLK2的驱动下,各个数码管依次轮流显示对应的数值。

其中,24选4MUX可以用四片74151来组成。

图 2.3.14 74151

74151芯片为8选1数据选择 器。其根据ABC脚输入的BCD 码值分别选通D0~D7的中的一路,从Y输出。GN为使能控制端。

12