EDA技术习题-修订版 联系客服

发布时间 : 星期六 文章EDA技术习题-修订版更新完毕开始阅读2712a6276edb6f1aff001f50

IF CLRN=’0’THEN CQI<=”0000”;

ELSEIF CLK’EVENT AND CLK=’1’THEN IF LDN=’0’THEN CQI<=D;ELSE IF ENA=’1’THEN

IF CQI<5 THEN CQI<=CQI+1; ELSE CQI<=”0000”; END IF; END IF; END IF; END IF; Q<=CQI; END PROCESS;

COUT<=NOT (CQI(0) AND CQI(2)); END one;

在源程序中,D[3..0]是计数器电路的预置数据输入端,Q[3..0]是计数器的状态输出端(考虑译码电路的4位数据的输入需求,设置了4位状态位);CLK是时钟输入端;CLRN是复位控制输入端,当CLRN=0时,Q[3..0]=0000;LDN是预置控制输入端,当LDN=0时,Q[3..0]=D[3..0];ENA是使能控制输入端,当ENA=1时,计数器计数,ENA=0时,计数器保持状态不变。带复位和预置控制的六进制加法计数器CNT6_1的仿真波形如图3.6所示.

14. 解:带复位和预置控制的是进制加法计数器CNT10_1的VHDL源程序如下:

LIBRARY IEEE:

USE IEEE.ATD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT10_1 IS

PORT(CLK,CLRN,ENA,LDN:IN STD_LOGIC;

D:IN STD_LOGIC_VECTOR(3 DOWNTO 0); Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT:OUT STD_LOGIC);

END CNT10_1;

ARCHITECTURE one OF CNT10_1 IS

SIGNAL CQI:STD_LOGIC_VECTOR(3 DOWNTO 0):=”0000”; BEGIN

PROCESS(CLK,CLRN,ENA,LDN) BEGIN

IF CLRN=’0’THEN CQI<=”0000”;

ELSEIF CLK`EVENT AND CLK=‘1’THEN IF LDN=‘0’THEN CQI<=D;ELSE IF ENA=’1’THEN

IF CQI<9 THEN CQI<=”0000”; END IF; END IF; END IF;

END IF; Q<=CQI; END PROCESS;

COUT<=CQI(0) AND CQI(3); END one;

在源程序中,D[3..0]是十进制加法计数器电路的预置数据输入端;Q[3..0]是计数器的状态输出端;CLK是时钟输入端;CLRN是复位控制输入端,当CLRN=0时,Q[3..0]=0000;LDN是预置控制输入端,当LDN=0时,Q[3..0]=D[3..0];ENA是使能控制输入端,当ENA=1时,计数器计数,ENA=0时,计数器保持状态不变。带复位和预置控制的是进制假发计数器CBT10_1的仿真波形如图3.7所示.

15. 解:利用题13设计的CNT6_1和题14设计的CNT10_1计数器,设计的六十进制计数器CNT60_1的原理图如图3.8所示.

图3.8所示俄原理图是用MAX+plusⅡ的原理图输入法设计的,但有的EDA根据并不支持原理图输入设计法,因此要求使用VHDL的元件例化语句实现电路设计.由图3.8所示的原理图可知,六十进制计数器设计需要1片十进制计数器CNT10_1,1片六进制计数器CNT6_1和1片两输入端的与门AND2_1(即图3.8中的AND2).CNT6_1已在题14设计和题13设计中完成,还需要设计一个两输入端的与门AND2_1.AND2_1的VHDL源程序如下:

LIBRARY IEEE:

USE IEEE.ATD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY AND2_1IS

PORT(a,b:IN STD_LOGIC;

y:OUT STD_LOGIC);

END AND2_1;

ARCHITECTURE one OF AND2_1 IS BEGIN

Y<=a AND b; EMD one;

使用VHDL的元件例化语句设计电路时,首先需要将使用的元件在程序包中声明,六十进制计数器设计需要的CNT10_1、CNT6_1和AND2_1在程序包my_pkg_1的元件声明如下:

LIBRARY IEEE:

USE IEEE.ATD_LOGIC_1164.ALL; PACKAGE my_pkg_1 IS Component CNT10_1

PORT(CLK,CLRN,ENA,LDN:IN STD_LOGIC;

D:IN STD_LOGIC_VECTOR(3 DOWENTO 0); Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT:OUT STD_LOGIC); END Component;

Component CNT6_1 --六进制计数器的元件声明

PORT(CLK,CLRN,ENA,LDN:IN STD_LOGIC;

D:IN STD_LOGIC_VECTOR(3 DOWNT 0); Q:OUT STD_LOGIC_VECTOR(3 DOWNT 0); COUT:OUT STD_LOGIC); END Component; Cpmponent AND2_1

PORT(a,b:IN STD_LOGIC) y:OUT STD_LOGIC); END Component; END my_pkg_1;

使用VHDL的元件例化语句设计的六十进制计数器的VHDL源程序CNT60_1如下:

LIBRARY IEEE:

USE IEEE.ATD_LOGIC_1164.ALL; USE work.my_pkg_1.ALL; ENTITY CNT60_1 IS

PORT(CLK,CLRN,ENA,LDN:IN STD_LOGIC; D:IN STD_LOGIC_BECTOR(DOWNTO 0); Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); COUT:OUT STD_LOGIC); END CNT60_1;

ANCHITECTURE one OF CNT60_1 IS SIGINAL a,b:STD_LOGIC; BEGIN

u1:cnt10_1 PORT MAP(CLK,CLRN,ENA,LDN,D(3 DOWNTO 0),Q(3 DOWNTO 0),a); u2:cnt6_1 PORT MAP(CLK,CLRN,a,LDN,D(7 DOWNTO 4),Q(7 DOWNTO 4),b); u3:AND2_1 PORT MAP(a,b,COUT); END onew;

在六十进制计数器CNT60_1的VHDL源程序中,声明了两个信号a和b作为电路内部的连线,它们分别接于CNT10_1和CNT6_1的进位输出端COUT。

第四章 Verilog HDL

填空题

1. 一个基本的Verilog HDL程序由__________构成.

2. 一个完整的Verilog HDL设计模块包括:__________,______,_________,和

__________4个部分.

3. Verilog HDL的模块端口定义用来声明电路设计模块的_________和____________. 4. Verilog HDL的模块Verilog HDL模块的T/O声明用来声明模块端口定义中各端口数据流动方向,包括________,_______,和_____________.

5. Verilog HDL的功能描述是用来描述设计模块的_________和模块端口间的

_____________.

6. Verilog HDL的功能描述可以用________,_________,__________和__________等方法来实现,通常把确定这些设计模块描述的方法称为建模.

7. 在Verilog HDL中的常数包括_________,______________和__________三种.

8. Verilog HDL的数字可以用___________,_____________,____________和___________4种不同数制来表示.

9. Verilog HDL的字符串是用双引号括起来的_________,它必须包含在___________. 10. Verilog HDL的简单标识符可以是字母,数字,下划线\和货币符号\等符号组

成的任意序列,但首字符不能是________.

11. Verilog HDL的标识符的字符数不能多于___________个. 12. 在定义Verilog HDL的标识符时.大小写字母是________的. 13. 如果Verilog HDL操作符的操作数只有1个,称为________操作;如果操作符的操作数有2个,称为________操作;如果操作符的操作数有3个,称为__________操作.

14. 在进行Verilog HDL的位运算时,当两个操作数的位宽不同时,计算机会自动将两个操作数按______对齐,位数少的操作数会在高位用________补齐.

15. 在进行Verilog HDL的关系运算时,如果关系是真,则计算结果为_________;如果关系是假,则计算结果是___________;如果某个操作数的值不定,则计算结果为________________.

16. 在Verilog HDL的\与缩减\运算中,只有操作数中的数字全为_______时,结果才为1.

17. Verilog HDL的条件操作符\的操作数有____个.

18. Verilog HDL的变量分为__________和____________两种. 19. Verilog HDL的register型变量是一种数值容器,不仅可以容纳_____,也可以保持___,这一属性与触发器或寄存器的记忆功能有很好的对应关系.

20. 在Verilog HDL中register型变量有_____,_____,____和____4种.

21. Verilog HDL的连续赋值语句的关键字是_______,赋值符号是_____________. 22. 在Verilog HDL的阻塞赋值语句中,赋值号”=”左边的赋值变量必须是__________型变量.

23. 在Verilog HDL的非阻塞赋值语句中,赋值号是________,赋值变量必须是_________型变量.

24. 在Verilog HDL的if语句中,系统对表达式的值进行判断,若值为0,x或z,则按_______处理,若为1,则按_______处理.

25. 在Verilog HDL中,使用_________关键字说明事件时有输入信号的上述沿触发的;使用_________关键字声明事件是由输入信号的下降沿触发的.

26. Verilog HDL的always块语句中的语句是_________语句,always块本身却是___________语句.

27. 在Verilog HDL中,行为描述包括___________,____________和____________3种抽象级别.

28. 在Verilog HDL中,结构描述包括__________和___________两种抽象级别. 单项选择题

1.目前Verilog HDL被IEEE公布的标准是( ).

① IEEE STD1076-1987 ② IEEE#1064-1995 ③ IEEE.STD_LOGIC_1164 ④ IEEESTD1076-1993 2. Verilog HDL是由( )语言演化来的。

① BASIC ② C 语言 ③ PASCAL ④ VHDL 3. 一个能为Verilog HDL综合器接受,并能作为一个独立的设计单元的完整的Verilog HDL程序称为( )。