VHDL考试要点Word文档格式.docx

上传人:b****3 文档编号:16925974 上传时间:2022-11-27 格式:DOCX 页数:15 大小:18.40KB
下载 相关 举报
VHDL考试要点Word文档格式.docx_第1页
第1页 / 共15页
VHDL考试要点Word文档格式.docx_第2页
第2页 / 共15页
VHDL考试要点Word文档格式.docx_第3页
第3页 / 共15页
VHDL考试要点Word文档格式.docx_第4页
第4页 / 共15页
VHDL考试要点Word文档格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

VHDL考试要点Word文档格式.docx

《VHDL考试要点Word文档格式.docx》由会员分享,可在线阅读,更多相关《VHDL考试要点Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。

VHDL考试要点Word文档格式.docx

在元件之间起互联,代表电路内部各元件之间的连接线,可以赋值给外部信号。

信号的描述格式:

SIGNAL信号名:

数据类型[:

SIGNALsys_clk:

BIT:

=’0’;

SIGNALground:

=’0’

signalaa:

std_logic_vector(7downto0);

std_logic_vector(3downto0):

=“1010”;

信号赋值语句语法格式:

目标信号名<

=表达式;

q<

=count;

irq<

='

0'

aa<

=dx1;

bb<

=dx2;

s1<

=s2AFTER10ns

indata<

=bb(7downto0)&

aa(7downto0);

建议在结构体中用赋值语句完成对信号赋初值的任务,因为综合器往往会忽略信号声明时所赋初值。

信号与变量区别

信号赋值可以有延迟时间,变量赋值无时间延迟

信号除当前值外还有许多相关值,如历史信息等,变量只有当前值

进程对信号敏感,对变量不敏感

信号可以是多个进程的全局信号,但变量只在定义它之后的顺序域可见

信号可以看作硬件的一根连线,但变量无此对应关系

赋值的形式不同;

声明的位置不同

CASE语句

格式:

CASE表达式IS

WHEN条件表达式=>

顺序处理语句

END CASE;

用CASE语句设计四选一数据选择器

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL

ENTITYmux41IS

PORT(s1,s2:

instd_logic;

a,,b,c,d:

z:

outstd_logic);

ENDENTITYmux41;

ARCHITECTUREactivOFmux41IS

SIGNALs:

std_logic_vector(1downto0);

BEGIN

S<

=s1&

s2

PROCESS(s1,s2,a,b,c,d)

CASEsIS

WHEN“00”=>

z<

=a;

WHEN“01”=>

=b;

WHEN“10”=>

=c;

WHEN“11”=>

=d;

WHENOTHERS=>

=‘x’;

ENDCASE;

ENDPROCESS;

ENDactiv;

IF(s=“00”)thenz<

ELSIF(s=“01”)thenz<

ELSIF(s=“10”)thenz<

ELSEz<

ENDIF;

ENDARCHITECTUREactiv;

IF与CASE比较

1.IF语句中条件句之间是相与的关系,CASE语句中条件句之间是相或的关系。

2.CASE条件语句必须将所有情况列出

 

顺序语句

1、顺序语句的特点:

每一条顺序语句的执行顺序都和它们的书写顺序基本一致。

2、出现的位置:

只能出现在进程和子程序中,子程序包括函数(Function)和过程(Procedure)

赋值语句

IF语句

CASE语句

FOR-LOOP语句

NEXT-LOOP语句

EXIT-LOOP语句

NULL语句

ASSERT语句

赋值语句包括变量赋值语句和信号赋值语句,前者的赋值是立刻发生的

后者的赋值发生在一个进程结束的时刻,并延时进行。

变量赋值目标:

=赋值源

信号赋值目标<

在同一进程中,同一信号赋值目标有多个赋值源时,信号赋值目标获

得的是最后一个赋值源的值,其前面相同的赋值目标不做任何变化

Signals1,s2:

std_logic;

Signalsec:

std_logic_vector(0to7);

Process(s1,s2)

Variablev1,v2:

std_logic;

Begin

v1:

=‘1’;

v2:

=‘1’;

s1<

s2<

sec(0)<

=v1;

sec

(1)<

=v2;

sec

(2)<

=s1;

sec(3)<

=s2;

=‘0’;

=‘0’;

sec(4)<

=v1;

sec(5)<

=v2;

sec(6)<

=s1;

sec(7)<

=s2;

ENDPROCESS

结果:

01000111

并行语句

并行语句一般处于进程(PROCESS)的外部。

所有并行语句都是并行执行的,

并行语句特点

a.所有语句的执行是并行的;

b.每条语句的执行和其所在的位置无关;

c.并行语句的输出仅仅依赖于输入,没有其它的限制条件

libraryieee;

useieee.std_logic_1164.all;

Entityexam1is

port(a,b:

c,d:

Endexam1;

Begin

c<

=aandb;

--并行语句的输出仅仅依赖于输入,没有其它的限制条件。

d<

=aorb;

--每条语句的执行和其所在的位置无关。

ENDm1;

3-8译码器

entityymqis

port(

Y:

instd_logic_vector(2downto0);

EN:

A:

outstd_logic_vector(7downto0));

endymq;

architecturem1ofymqis

begin

process(y)

ifen='

1'

then

caseyis

when"

000"

=>

A<

00000001"

001"

A<

00000010"

010"

00000100"

011"

="

00001000"

100"

00010000"

101"

00100000"

110"

01000000"

111"

10000000"

whenothers=>

11111111"

endcase;

else

Endif;

8-3编码器

Useieee.std_logic_1164.all;

Entitybmqis

Port(A:

instd_logic_vector(7downto0);

EN:

instd_logic;

Y:

outstd_logic_vector(2downto0);

Endbmq;

--结构体1

architecturem2ofbmqis

process(a)

caseais

when"

=>

Y<

;

whenothers=>

y<

elsey<

endif;

endprocess;

数据选择器

entitymux41is

port(A,B,C,D:

in

std_logic_vector(15downto0);

Sel:

td_logic_vector(1downto0);

out

std_logic_vector(15downto0));

endmux41;

architectureFofmux41is

begin

withselselect

=Awhen"

00"

Bwhen"

01"

Cwhen"

10"

Dwhenothers;

endF;

二-十进制编码器

entitybmqis

port(A:

std_logic_vector(9downto0);

B:

std_logic_vector(3downto0));

endbmq;

architecturem1ofbmqis

B<

0000"

whenA="

0000000001"

else

"

0001"

0000000010"

“0010"

0000000100"

“0011"

0000001000"

“0100"

0000010000"

“0101"

0000100000"

“0110"

0001000000"

“0111"

whenA=“0010000000"

“1000"

whenA=“0100000000"

“1001"

whenA=“1000000000"

“1111"

endm1;

七段显示码译码器

Libraryieee;

Useieee.std_logic_unsigned.all;

Entityxianis

Port(C:

instd_logic_vector(3

downto0);

D:

outstd_logic_vector(6downto

0));

Endxian;

Architecturea1ofxianis

Begin

D<

0111111"

whenC="

else--0

0000110"

else--1

1011011"

0010"

else--2

1001111"

0011"

else--3

1100110"

0100"

else--4

1101101"

0101"

else--5

1111101"

0110"

else--6

0000111"

0111"

else--7

1111111"

1000"

else--8

1101111"

1001"

else--9

0000000"

Enda1;

8位二进制同步计数器

useieee.std_logic_unsigned.all;

entitycounter8is

port

clk:

q:

outstd_logic_vector(7downto0)

);

endcounter8;

architecturecjofcounter8is

signalt:

process(clk)

if(clk'

eventandclk='

)then

t<

=t+1;

q<

=t;

endcj;

可预置保持的两位十进制加法计数器

entitycnt10is

clk,clr,ena,prn,hold:

dah,dal:

inintegerrange0downto15;

qh,ql:

outintegerrange0downto15

endcnt10;

architecturecjofcnt10is

signaltemph:

integerrange0downto15;

signaltempl:

process(clr,clk,ena)

if(clr='

temph<

=0;

templ<

elsif(clk'

if(prn='

=dah;

=dal;

elsif(hold='

=temph;

=templ;

elsif(ena='

if(templ<

9)then

=templ+1;

else

if(temph<

=temph+1;

endif;

qh<

ql<

本程序解释:

ifclk'

eventandclk='

就是检测上升沿的

clk置数

clr清零

ena计数

prn

hold保持

四位二进制异步计数器

entitycounter4is

clr,ld:

d:

instd_logic_vector(3downto0);

outstd_logic_vector(3downto0)

endcounter4;

architecturecjofcounter4is

std_logic_vector(3downto0);

process(clk,clr)

if(clr='

)then

elsif(clk'

if(ld='

t<

if(t="

elset<

counter10

1111"

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1