VHDL语言快速入门必读

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一·1.数据类型BIT与STD_LOGIC有什么区别。

BIT类型的取值只能是0或1,没有不定状态X,也没有高阻态。

STD_LOGIC类型可以有9种不同的值,包括U-初始值,X-不定,0-0,1-1,Z-高阻态,W-弱信号不定,L-弱信号0,H弱信号1.‘—’不可能情况。

2.信号和变量的异同。

信号是全局量,只要在结构体中已经定义,就可以在结构体中的所有地方使用,信号的赋值符号是”<=”,信号带入时可以附加延时,信号实际带入过程和带入语句的处理时分开进行的。

变量是局部量,只能在进程,子程序内部定义和使用,变量的赋值符号是“:=”,变量的赋值是立即执行的,不能附加延时。

3.VHDL语言的基本顺序语句和并行语句有哪些?

双性语句:信号带入语句

顺序语句:WHAT语句,断言语句,变量赋值语句,IF语句,CASE语句,LOOP语句,NEXT语句,EXIT语句,过程调用语句,NULL语句。

并行语句:进程(PROCESS)语句,条件带入语句,选择信号带入语句,并发过程调用语句,块语句。

4.用VHDL语言进行硬件设计的流程是什么?

1.分析实际的需求2确定芯片的功能3.用VHDL 语言描述改元件4.编译,如果有错误修改后再编译直至编译通过。5.仿真,如果仿真不符合设计要求,修改程序直至仿真通过。6.测试7.综合,8.下载到实际的芯片上。

5.基本的硬件描述语言的种类有哪些?

美国国防部开发的VHDL。

Verilog公司开发的Verilog-HDL.

日本电子工业振兴协会开发的UDL/I语言。

6.VHDL语言中包含的库的种类有哪些?库:是经编译后的数据的集合,它存放包集合定义,实体定义,构造体定义,和配置定义。库的种类:1.IEEE库,2.STD库,3.面向ASIC 的库,4.WORK库,5.用户定义库

7.IEEE库中所包含的基本类型转换函数有

1.包含程序所用的库

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

2.实体声明

ENTITY fp IS

PORT();

END ENTITY fp;

3.结构体,具体功能的实现

ARCHITECTURE a OF fp IS

BEGIN

END ARCHITECTURE a;

9.VHDL的程序子结构有哪些?

进程(PROCESS)顺序语句,块(BLOCK)并行语句,过程(PROCEDURE)顺序语句,函数(顺序语句)。

10.简述when-else和if-else的区别?

If-else是顺序语句所以只能在进程内部使用,可以没有else语句,可以进行嵌套。有自身值带入的描述,能组成锁存电路。

When-else是并行语句,在结构体内使用,必须要有else语句,不能进行嵌套,没有自身值带入的描述,不能组成锁存电路。

11.什么是ASIC,ASIC的特点是什么?ASIC是Application Specific Integrated Circuit 的英文缩写,在集成电路界被认为是一种为专门目的而设计的集成电路。

ASIC的特点是面向特定用户的需求,ASIC在批量生产时与通用集成电路相比具有体积更小、功耗更低、可靠性提高、性能提高、保密性增强、成本降低等优点。

12.逻辑电平有哪些?

逻辑电平:有TTL、CMOS、LVTTL、ECL、PECL、GTL;RS232、RS422、LVDS等。

·其中TTL和CMOS的逻辑电平按典型电压可分为四类:5V系列(5V TTL和5V CMOS)、3.3V 系列,2.5V系列和1.8V系列。

·5V TTL和5V CMOS逻辑电平是通用的逻辑电平。

13.TTL电平和CMOS电平可以互联吗?

数字电路中TTL电平是个电压范围,规定输出高电平>2.4V,输出低电平<0.4V。在室温下,一般输出高电平是3.5V,输出低电平是0.2V。

CMOS电平在不同的电路中是0v-5v或者0v-12v。所以可以用CMOS电平驱动TTL电平器件,但是TTL 电平驱动CMOS电平器件时须加上拉电阻。

二·用VHDL语言描述给定电路,或写出给定电路的功能或输出。

三.程序改错。

四.注释程序。

五.程序同功能语句替换。

六.元件例化连接器件。

程序例子:

IF语句:(1)IF(sel=’0’)THEN

y<=’1’;

END IF;

(2)IF (sel=’0’)THEN

y<=’0’;

ELSE

y<=’1’;

END IF;

(3)IF(sel=”00”)THEN

y<=”01”;

ELSIF(sel=”01”)THEN

y<=”10”

……

ELSE

y<=”11;

END IF;

CASE语句:CASE sel IS

WHEN “00”=>y<=”00”;

WHEN “01”=>y<=”10”;

WHEN “11”=>y<=”11”;

END CASE;

FOR语句:FOR i IN 0 TO 7 LOOP

tmp:=tmpXORa(i);

END LOOP; WHILE语句:WHILE(i<8)LOOP

tmp:=tmpXORa(i);

i:=i+1;

END LOOP;

WHEN-ELSE语句(类似if-else):

q<=i0 WHEN sel=”00” ELSE

i1WHEN sel=”01” ELSE

i2WHEN sel=”10” ELSE

i3 WHEN sel=”11” ELSE

‘X’;

WITH-SELECT语句:(类似CASE语句)

WITH sel SELECT

q<=i0 WHEN “00” ,

i1 WHEN “01” ,

i2 WHEN “10” ,

i3 WHEN “11” ,

‘X’WHEN OTHERS ;

相关文档
最新文档