繁体中文
高级搜索
 
首页 | 电子技术应用 | 行业最新动态 | 行业最新产品 | 软件资料下载 | 电路图纸欣赏 | 博客文章精选 | 电子精品论坛 | 电子技术贴吧

当前位置:首页 >> 博客文章精选 >> 嵌入式系统-博客 >> VHDL学习1
VHDL学习1
作者:   来源: 发表时间:2006-12-08  字号:  

关键词


l 设计库和标准程序包



library library_name;


use library_name.package_name.all;



由于STD_LOGIC数据类型不属于VHDL标准库,所以使用时要予以以下声明。


library IEEE;



use IEEE.Std_Logic_1164.all;






l ENTITY 称为实体,描述了电路器件外部情况及各信号端口的基本性质。


entity entity_name is





generic (generic_list);





port (p_name:port_m data_type;



p_name:port_mi data_type);


end entity entity_name;





电路的端口及其端口信号描述语句PORT()


p_name端口信号名


port_m 端口模式:IN 单向只读模式,规定数据只能通过此端口被读入实体中。


OUT 单向输出模式,规定数据只能通过此端口从实体向外流出,或者可以将实体中的数据向此端口赋值


INOUT 输入输出双向口


BUFFER INOUT类似,区别在于输入信号来自于实体内部产生的回读输出的信号,即允许反馈。


data_type 数据类型:整数数据类型 INTEGER


布尔数据类型 BOOLEAN


标准逻辑位数据类型 STD_LOGIC


type std_ulogic is ( 'U', -- Uninitialized


'X', -- Forcing Unknown


'0', -- Forcing 0


'1', -- Forcing 1


'Z', -- High Impedance


'W', -- Weak Unknown


'L', -- Weak 0


'H', -- Weak 1


'-' -- Don't Care


);


位数据类型 BIT


BIT数据类型的信号规定的取值范围是逻辑位‘1’,‘0





l ARCHITECTURE 称为结构体,结构体负责描述电路内部逻辑功能或电路结构,并行语句。


architecture architecture_name of entity_name is





architecture_declarations(说明语句)


begin


concurrent_statements(功能描述语句)


end [ architecture ] [ architecture_name ];





说明语句:包括在结构体中需要说明和定义的数据对象、数据类型、元件调用声明等。并非必须的。


功能描述语句:必须的,给出相应的电路功能描述语句,可以是并行语句、顺序语句或他们的混合。





l PROCESS_END PROCESS 进程语句和顺序语句,VHDL中,所有合法的顺序描述语句必须放在进程语句中,比如IF_THEN_ELSE_END IF等。


[process_label:] process [ ( sensitivity_list ) ] [ is ]





[process_declarations]


begin



sequential_statements



end process [ process_label ] ;





sensitivity_list:敏感信号表,通常要求把进程中所有的输入信号都放在敏感信号表中。



PROCESS的执行依赖于敏感信号的变化,当某一敏感信号发生跳变,就将启动此进程语句,而在执行一遍整个进程的顺序语句后,便返回进程的启示端,进入等待状态,直到下一次敏感信号中某一信号跳变才再次进入“启动—运行”状态,再执行一遍进程。一个结构体中,可以存在多个进程,它们是并行的,而任意一个进程属于顺序语句。








l AND()OR(或)、NOT(非)、NAND(与非)、NOR(或非)、XOR(异或)、XNOR(同或) 逻辑操作符,构成组合电路,他们的操作数有三种类型,分别为BIT BOOLEAN STD_LOGIC.





l IF_THEN_ELSE_END IF 条件语句





if condition then


sequential_statements


end if;






if condition then


sequential_statements


else



sequential_statements


end if;






if condition then


sequential_statements


elsif condition then


sequential_statements


else



sequential_statements


end if;

赋值语句



signal_name <= [delay_mechanism ] waveform ;





WHEN_ELSE 条件信号赋值语句


signal_name <= [delay_mechanism ] waveform1 when condition1 else





[delay_mechanism ] waveform2 when condition2 else


. . .


[delay_mechanism ] waveformn;





with selection select


signal_name <= [delay_mechanism ] waveform1 when choice1,


[delay_mechanism ] waveform2 when choice2,


. . .


[delay_mechanism ] waveformn when others;





l SIGNAL 信号定义和数据对象(Data Objects),它规定了信号的行为方式和功能特点。


Simplified Syntax:


signal signal_name : type;


signal signal_name : type := initial_value;


注:signal可作为内部的节点,这就决定它不需要像端口那样定义模式,即数据流动不受方向限制,可用来建立寄存器等。








l EVENT 信号跳变检测表示和信号属性函数


signal_name’event[and signal_name=(‘1’)(‘0’)]





l 不完整条件语句与时序电路



比如在未满足if条件,又没有else明确指出其他条件时如何操作时,即在条件语句中没有对所有可能发生的条件给出对应的处理方式,这样就产生了不完整条件语句。此时,VHDL综合器将引进一个时序元件保持当前状态值。利用这种不完全条件语句的描述引进寄存器元件,从而构成时序电路的方式是VHDL描述时序电路最重要的途径。


CLK’LAST_VALUE=‘0’(‘1’)


rising_edge()测定上升沿的函(LIBRARY IEEE ;


USE IEEE.STD_LOGIC_1164.ALL ;)





l WAIT



Simplified Syntax:


wait;



wait on signal_list;


wait until condition;


wait for time;


!注意:如果您发现此文章出现影响您的阅读的状况,请从浏览器地址栏里复制本文的链接到留言本报告给站长解决!
  • 上一篇: VHDL学习2
  • 下一篇: 为arm,51与优盘进行串口通信的东东

  • >> 联系我们请给我们留言·留言本
    本站所有提供的信息软件资料均来自网络,版权及著作权归原作者所有,如果无意中侵犯了您的相关权利或触及法律法规,请给我们留言, 我们将在24小时内删除。
      浙ICP备05071687号  电子技术精品网