原创 VHDL数据对象

2009-1-16 16:35 5523 8 8 分类: FPGA/CPLD

二、VHDL数据对象<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


     三种对象:常量(Constant


               变量(Variable


               信号(Signal


     三种对象的物理含义:


       ?常量代表数字电路的电源、地、恒定逻


        辑值等常数;


       ?变量代表暂存某些值的载体,常用于描述


        算法;


       ?信号代表物理设计的某一条硬件连接线,


        包括输入、输出端口。



  


67  


三种对象的特点及说明场合: 


    信号:全局量, 用于architecture


          packageentitiy


    变量:局部量,用于processfunction


          procedure


    常量:全局量,可用于上面两种场合。 



 
 


68  


1、常量说明


   常量说明:对某一个常量名赋予一个固定的值。


   格式:   


:


   constant data:bit_vector(3 downto 0):=“<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />1010”


   constant  width: integer: = 8


   constant  x: new_bit: = ‘x’


   常量数据类型必须与表达式的数据类型一致。 


constant  常数名:数据类型:= 表达式;



  


69  


常量的可视性(作用范围): 
 
  


             库、程序包 


           实体(Entity 
  


           结构体1                     
 
 


         进 程1        


           结构体2                     
 
 


         进 程2        


常量全局量,其作用范围取决于常量被定义的位置。


70  


2、变量说明


     变量一个局部量,只能在进程和子程序


定义、使用。其作用范围仅限于定义了变量的进


程和子程序


格式: 


例:


   variable a, b : bit;


   variable count:integer range 0 to 255:= 10;


   变量的初值可用于仿真,但综合时被忽略。 


variable  变量名:数据类型    约束条件:= 表达式;


 


71  


3、信号说明


     电子硬件系统运行的基本特性:


     各部分电路工作的并行特性;


     信号传输过程的延时特性;


     多驱动源的总线特性;


     时序电路触发器的记忆特性等。


      信号电子系统内部硬件连接和硬件特性的抽象表示。用来描述硬件系统的基本特性。


格式:           


signal  信号名:数据类型    约束条件:=表达式;


 


72  


例:


   signal a, b : bit;


   signal init : integer := -1;


   signal s1: std_logic := ‘0’;


   signal s2: std_logic_vector(15 downto 0); 


注:a. 综合时初值被忽略。


    b. 信号全局量。可在结构体、实体、块


       说明和使用信号。


    c. 在进程和子程序只能使用信号,不能说


       明信号。


 


73  


例:进程信号与变量的使用 


entity  ex  is


     port(…..);


end  ex;


architecture  arch_ex  of  ex  is


     signal  a, b :std_logic;


begin


     process(a, b)


          variable  c, d : std_logic;


     begin


          c:= a + b;


          d:= a - b;


             ……


     end  process;


end  arch_ex;


 


74  


信号与端口的区别:


      除没有方向说明外,信号与 实体的端口


PORT概念相似。端口是一种隐形的信号。


   entity exam is


      port([signal] a, b: in std_logic;


           [signal] c: out std_logic);


   end exam;


    端口是一种有方向的信号。即输出端口不能


读出数据,只能写入数据;输入端口不能写入数


据,只能读出数据。


    信号本身无方向,可读可写。

 ************************************************************
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
8
关闭 站长推荐上一条 /3 下一条