VHDL小知识

FPGA知识
CPLD知识
Verilog知识
VHDL入门与概述
  • 什么是VHDL?
  • HDL语言的种类
  • VHDL程序的实体
       VHDL实体的组成
         类型说明
         端口说明
         实体说明
  • VHDL程序的结构体
        结构体命名
        信号定义

         VHDL属性
        VHDL进程

        VHDL标识符
        VHDL数字
        VHDL常量
        VHDL变量
        VHDL信号

        VHDL数据类型
         VHDL std_logic
        VHDL布尔量类型
         VHDL整形
        VHDL位类型
        VHDL位矢量类型
        VHDL位串
        VHDL实数类型
        VHDL数据类型转换

        VHDL操作符
        VHDL关系操作符
        VHDL逻辑操作符
        VHDL算术操作符
        VHDL并置操作符

        VHDL库
        VHDL程序包

       VHDL语句
       VHDL并行描述语句
       VHDL并发信号赋值语句
       VHDL条件信号赋值语句
       VHDL选择信号赋值语句

       VHDL顺序描述语句
       VHDL赋值语句
       VHDL IF
       VHDL CASE

       VHDL程序
        vhdl D触发器
        vhdl表决器
        vhdl乘法器
        vhdl地址译码
        vhdl二分频
        vhdl二选一
        vhdl非门
        vhdl分频器
        vhdl计数器
        vhdl寄存器
        vhdl加法器
        vhdl减法器
        vhdl七段数码管译码器
        vhdl三态总线收发驱动器
        vhdl四选一
        vhdl同步D触发器
        vhdl伪随机码m序列发生器
        vhdl移位寄存器

     VHDL行为描述法
     VHDL数据流描述法
     VHDL结构化描述法
  • VHDL逻辑操作符

    VHDL 逻辑操作符

     

    VHDL 提供了 7 种逻辑操作符 , 如 下 表所示。在 VHDL 程序中 , 逻辑操作符的具体 使用 规则如下所示 :

     

    逻辑操作符

    操作符的逻辑功能

    逻辑操作符

    操作符的逻辑功能

    NOT

    逻辑非

    NOR

    逻辑或非

    AND

    逻辑与

    XOR

    逻辑异或

    NAND

    逻辑与非

    XNOR

    逻辑异或非

    OR

    逻辑或

    1) 逻辑操作符可以应用的数据类型包括 Boolean , bit , std_ulogic , bit _ vector , std _u_ logic_vector 、 std_ ulogic 的子类型以及它们的数组类型。

    2) 二元逻辑操作符左右两边对象的数据类型必须相同。

    3) 对于数组的逻辑运算来说 , 要求数组的维数必须相同 , 其结果也是相同维数的数组.

    4) 7 种逻辑操作符中 , NOT 的优先级最高 , 其他 6 个逻辑操作符的优先级相同。

    5) AND , OR , NAND , NOR 通常称为 " 短路操作符 ", 即只有左边的操作结果不能确定时才执行右边的操作。其中 , AND , NAND 在左边的操作结果为 " 1 " 或者 "true" 时才执行右边的操作 ; OR , NOR 只有在左边的操作结果为 "0" 或者 " false" 时才执行右边的操作。

    6) 高级编程语言中的逻辑操作符有自左向右或是自右向左的优先级顺序 , 但是 VHDL 中的逻辑操作符是没有左右优先级差别的 , 这时设计人员经常通过加括号的方法来解决这个优先级差别问题。例如 :

    q <= xl AND x2 OR NOT x3 AND x4;

    上面的程序语句在编译时将会有语法错误 , 原因是编译工具不知道将从何处开始进行逻辑运算。对于这种情况 , 设计人员可以采用加括号的方法来解决。这时将上面的语句修改成下面的形式 :

    q <= (xl AND x2) OR (NOT x3 AND x4);

    这时再进行编译就不会出现语法错误了。不难看出 , 通过对表达式进行加括号的方法可以确定表达式的具体执行顺序, 从而解决了逻辑操作符没有左右优先级差别的问题。



      HDL|

    Copyright © 2005-2008 All Rights Reserved
    ARM开发板网 版权所有