我酷下载
您的位置:首页-> 技术文章-> -> 电子设计-> VHDL学习(1)

阅读排行




VHDL学习(1)

作者未知 来源未知 加入时间:2006-1-9 人气:322
关键词:
      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;
       
       
      l          赋值语句
      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学习
  • VHDL学习(5)
  • VHDL学习(4)
  • VHDL学习(3)
  • VHDL学习(2)
  • 相关软件

    联系我们 广告服务 友情链接 版权说明 软件发布 下载帮助

    CopyRight
    2005-2016 www.5qcn.net All Rights Reserved 版权所有 【我酷】下载