第5节 VHDL基本描述语句(2)
推荐给好友
打印
加入收藏
更新于2008-05-18 13:50:56

第5节 VHDL基本描述语句(2)

并行过程调用语句、并行断言语句

  • 过程调用语句:
    --顺序过程调用语句:进程或子程序内部;
    --并行过程调用语句:结构体并行语句或块语句中。并发执行,等价于一个进程语句。
    --格式:过程名(参数表)
  • 断言(assert)语句:
    --用于仿真、调试中的人机对话;在仿真中报告指定的错误信息,以便程序的修改;
    --顺序断言语句:进程、函数、过程中;
    --并行断言语句:实体说明、结构体、块语句中。

元件例化语句

元件例化语句

  • 低层次元件嵌入到高一层的设计中,并把相应端口正确连接起来,就是元件例化语句的功能。体现层次化设计、模块化设计思想;
  • 应用广泛,避免大量重复工作;
  • 用Component语句指明结构体所要调用的元件、单元或模块;
  • 用Port Map语句进行元件端口信号映射(包括位置映射和名称映射);
  • 元件描述:用于声明端口类型和数据类型
    COMPONENT <低层设计名称> IS
    PORT ( <端口名称> : <端口类型> <数据类型>; ….. <端口名称> : <端口类型> <数据类型>; )
    END COMPONENT;
  • 元件配置:用于映射端口
    <实例名称> : <低层设计名称>PORT MAP(
    <低层端口名称> => <本层端口名称>; … ;
    <低层端口名称> => <本层端口名称>;)

类属(Generic)语句

  • 一个实体的结构体描述经常分解为不同层次模块的组合。类属语句实现各个模块之间公共参数(如位矢量长度、数组长度、延时时间等)的传递。
  • 类属语句通常放在实体说明部分,所定义的参数整个实体可见。
  • 使用Generic语句易于使器件模块化和通用化。例如,在设计中有一些参数不能确定,为了简化设计和减少VHDL语言的书写,通常编写通用的VHDL源代码。
  • 在设计的源代码中,这些参数是待定的,在仿真时,只要用Generic语句将待定参数初始化即可。
  • 在例化元件时采用参数匹配命令Generic Map来改变参数的值。

生成(Generate)语句

  • 用来产生多个相同的结构,避免多段相同结构的VHDL程序的重复书写。
  • 例如:将D触发器扩展成移位寄存器、移位寄存器扩展为移位寄存器阵列等等。
  • 基本格式:
    [生成标号]:工作模式描述 GENRATE
    <并行处理语句>;
    END GENRATE [生成标号];
  • 有FOR和IF两种工作模式:
    --For:常用来进行重复结构的描述;
    --IF:常用来进行含有例外情况的重复结构的描述。

顺序语句

  • 顺序赋值语句
  • Wait 语句
  • IF 语句
  • CASE 语句
  • LOOP 语句
  • NEXT 语句
  • EXIT 语句
  • NULL 语句
  • RETURN 语句
  • 顺序断言语句
  • REPORT 语句
  • 顺序过程调用语句

    顺序赋值语句、Wait语句

  • 顺序赋值语句
    --进程中语句是顺序执行的;
    --注意信号赋值与变量赋值的区别。
  • Wait语句:用于指明启动进程的敏感信号
    --Wait: 无限等待;
    --Wait on: 等待敏感信号变化;
    --Wait for: 等待指定的时间;
    --Wait until: 等待条件表达式为真;
    --多条件:Wait on … until … for …

    IF语句

  • 基本格式:
    [IF标号:]
    IF 布尔表达式 THEN
            顺序语句
    [ELSIF 布尔表达式 THEN
            顺序语句];
    ……
    [ELSE 顺序语句];
    END IF [IF标号]

    IF语句根据条件是否成立来决定语句的执行顺序;
    能够嵌套使用;是顺序语句,可在进程中使用。

    CASE语句

  • 基本格式:
    [CASE标号:]
    CASE 表达式 IS
    WHEN 条件值1=>顺序语句;
    WHEN 条件值2=>顺序语句;
    WHEN 条件值3=>顺序语句;
    ……
    [WHEN Others=>顺序语句;]
    END CASE[CASE标号]

    根据表达式的取值来决定进行某项操作;
    条件值不能重复,不能遗漏,others只能在最后出现一次。

    LOOP语句

  • 主要功能:使程序进行有规则的循环,循环次数受迭代算法的控制。
  • 两种形式:
    --For循环:用于规定数目的循环;
    --While循环:用控制条件判断循环是否结束;
  • 基本格式:
    [LOOP标号:]
    [重复模式] LOOP
    顺序语句;
    END LOOP [LOOP标号]

    两种跳出循环的语句 

  • Next语句:在循环语句内部,跳出本次循环

 

  • Exit语句:在循环语句内部,跳出整个循环。

    其他顺序语句

  • Null语句:
    空操作,不发生任何动作。
    常用于Case语句。
  • Return语句:
    只用在函数和过程中,用来结束函数和过程的执行。
  • 顺序断言语句:
    只在进程、函数、过程中使用。
  • 顺序过程调用语句。
    只在进程、函数、过程中使用。

<<上一节       下一节>>

相关链接


 
关于我们 | 诚邀加盟 | 客户服务 | 相关法律 | 网站地图 | 友情链接 | 服务信箱:service@eefocus.com
© 2006 与非门科技信息咨询(北京)有限公司 All Rights Reserved.