VHDL变量与信号的差异分析及实例文档格式.docx

上传人:b****1 文档编号:14222291 上传时间:2022-10-20 格式:DOCX 页数:24 大小:211.55KB
下载 相关 举报
VHDL变量与信号的差异分析及实例文档格式.docx_第1页
第1页 / 共24页
VHDL变量与信号的差异分析及实例文档格式.docx_第2页
第2页 / 共24页
VHDL变量与信号的差异分析及实例文档格式.docx_第3页
第3页 / 共24页
VHDL变量与信号的差异分析及实例文档格式.docx_第4页
第4页 / 共24页
VHDL变量与信号的差异分析及实例文档格式.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

VHDL变量与信号的差异分析及实例文档格式.docx

《VHDL变量与信号的差异分析及实例文档格式.docx》由会员分享,可在线阅读,更多相关《VHDL变量与信号的差异分析及实例文档格式.docx(24页珍藏版)》请在冰豆网上搜索。

VHDL变量与信号的差异分析及实例文档格式.docx

信号赋值延时更新数值,一般生成时序电路

变量赋值立即更新数值,一般生成组合电路

1.5信号的多次赋值

a,一个进程中:

仅最后一次赋值有效

b,多个进程中:

称为多源驱动(如总线结构)

能综合成硬件电路的多源驱动有三种:

线与,线或,三态

2.变量与信号的比较实例

2.1信号的仿真

ARCHITECTURE 

rtlOFsigIS

SIGNALa,b:

STD_LOGIC;

--定义信号

BEGIN

PROCESS(a,b)

BEGIN

a<

=b;

b<

=a;

ENDPROCESS;

ENDrtl;

由于信号赋值的延时性(赋新值发生在进程结束时),所以结果是a,b的值互换

------------------------testbench--------------------

LIBRARYieee;

USEieee.std_logic_1164.all;

--------------------------------------------

ENTITYtestbenchIS

ENDtestbench;

architecturemtestoftestbenchis

componentsigIS

PORT(clk,rst:

INstd_logic;

din1,din2:

instd_logic_vector(3downto0);

dout1,dout2:

outstd_logic_vector(3downto0));

ENDcomponent;

signalclk:

std_logic:

='

0'

;

signalrst:

std_logic;

signaldin1,din2:

std_logic_vector(3downto0);

signaldout1,dout2:

std_logic_vector(3downto0);

constantclkpd:

time:

=20ns;

begin

clk<

=notclkafterclkpd/2;

process

rst<

1'

din1<

="

0111"

din2<

1010"

waitfor40ns;

wait;

endprocess;

sig_0:

sig

PORTmap(clk=>

clk,rst=>

rst,din1=>

din1,din2=>

din2,dout1=>

dout1,dout2=>

dout2);

endmtest;

-------------------------------------------signal------------------------------------------

ENTITYsigIS

ENDsig;

ARCHITECTURErtlOFsigIS

PROCESS(clk,rst)

BEGIN

if(rst='

)then

a<

=din1;

b<

=din2;

elsif(clk'

eventandclk='

a<

b<

endif;

ENDPROCESS;

dout1<

=a;

dout2<

=b;

--------------------------------------------------------------simulationresults-------------------

------------------------------------------------synthesisresults---------------------------

A和B都综合出寄存器;

A寄存器的输出接至B寄存器的输入;

B寄存器的输出接至A寄存器的输入;

2.2变量的仿真

ARCHITECTURErtlOFvarIS

PROCESS

VARIABLEa,b:

--定义变量

a:

b:

由于变量赋值的立即更新,所以结果是a和b的值均为b

------------------------------------------variable------------------------------

LIBRARYieee;

variablea,b:

--?

?

a:

b:

a:

b:

------------------------------------simulationresults-------------------

A综合出寄存器,B没有被综合出寄存器;

3.状态机中的变量和信号

3.1状态机中的赋值采用信号来进行

--------------------------------------------

ENTITYstring_detectorIS

PORT(d,d2,clk,rst:

q:

OUTstd_logic);

ENDstring_detector;

ARCHITECTUREmy_archOFstring_detectorIS

TYPEstateIS(zero,one,two,three);

SIGNALpr_state,nx_state:

state;

signalt1,t2:

-----Lowersection:

--------------------

PROCESS(rst,clk)

IF(rst='

)THEN

pr_state<

=zero;

ELSIF(clk'

EVENTANDclk='

=nx_state;

ENDIF;

----------Uppersection:

---------------

PROCESS(d,pr_state)

--variabletemp:

t1<

=d;

CASEpr_stateIS

WHENzero=>

IF(d='

)THENnx_state<

=one;

ELSEnx_state<

WHENone=>

=dxord2;

=two;

WHENtwo=>

=dandd2;

=three;

WHENthree=>

ENDCASE;

q<

=t1;

ENDmy_arch;

-----------------------------synthesisresults---------------

由图可见,由于状态机会综合出寄存器,所以t1这个寄存器被状态机中的寄存器代替了;

如果在状态机中采用信号来赋值,那么结果应该是一样的;

3.2状态机中的赋值采用信号来进行

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

当前位置:首页 > 工程科技 > 机械仪表

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

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