1、变量LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNT12 ISPORT (CLK,RESET, EN: IN STD_LOGIC; QA,QB,QC,QD: OUT STD_LOGIC);END COUNT12;ARCHITECTURE BEHAVE OF COUNT12 ISBEGIN PROCESS(CLK,RESET)VARIABLE COUNT_4: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF (RESET=0) THEN COUN
2、T_4:=0000; ELSIF(CLKEVENT AND CLK=1)THEN IF (EN= IF (COUNT_4=1011 ELSE=COUNT_4+ END IF; QA=COUNT_4(0); QB=COUNT_4(1); QC=COUNT_4(2); QD=COUNT_4(3); END PROCESS;END BEHAVE;变量的赋值符号“:=”,(程序中点蓝色字体)变量数值的改变是通过变量赋值来实现的。赋值语句右方的表达式必须是一个与目标具有相同的数据类型的数值,这个表达式可以是一个运算表达式,也可以是一个数值。信号定义方法SIGNAL COUNT_4:QA COUNT_4E
3、ND PROCESS;当信号定义了数据类型和表达方式后,在VHDL设计中就能对信号进行赋值了,格式:目标信号=表达式。这里的表达式可以是一个运算表达式,也可以是数据对象(变量、信号或常量)。软件仿真以变量为例a、 运行单击软件上的按钮,编译通过如图1-1图1-1b、查看RTL图c、新建波形文件执行主菜单File下的New命令,在弹出的新建文件对话框中选择“OtherFile”标签。选择途中的VectorWaveformFile。添加仿真信号。得仿真波形如图12图12结果分析:从仿真波形来看,是二进制同步计数器设计通过,EN和RESET都必须是高电平的时候才工作,所以我设置的是整段都为高电平,Q
4、A、QB、QC、QD、它们都是在时钟脉冲来的时候,输出开始计数,从00001011(当到1100是复位)。(图中蓝线处清零)3-8译码器3-8译码器(74LS138)是最常用的一种小规模集成电路,它有3个二进制输入端A、B、C和8个译码输出端Y0-Y7。对输入端A、B、C的每一组取值进行译码,就可以确定Y0-Y7的那一位变为低电平(有效),从而达到译码的目的。3-8译码器还有选通输入端G1、G2、G3,只有在G1=1,G2=0,G3=0时,3-8译码器才进行正常的译码,否则Y0-Y7输出将均为高电平。ENTITY YIMAQI IS PORT(A,B,C,G1,G2,G3:IN STD_LOG
5、IC; Y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END YIMAQI;ARCHITECTURE BEHAVE38 OF YIMAQI ISSIGNAL INDATA: STD_LOGIC_VECTOR (2 DOWNTO 0);BEGIN INDATAYXXXXXXXX END CASE;ELSE Y11111111END IF;END BEHAVE38;a、运行按钮,编译通过如图1- 3遇到的问题:VHDL标识符必须以字母开头,不能以下划线和数字开头。变量的赋值符号“:=”和信号赋值符“=”的区别(上面题中已经分析)。注意CASE语句,常用来描述总线、编码、译码等的行为。如图1-4图1-4在G1=1,G2=0,G3=0时,Y0-Y7输出和设计结果一样(低电平有效)。总结:通过对VHDL语言的描述设计,把VHDL的软件设计与现实硬件挂钩,是软件转化为硬件电路的关键步骤。通过本次实验,我更加了解VHDL工具的强大作用,在今后的学习中,我会更进一步的去了解。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1