zoukankan      html  css  js  c++  java
  • 【FPGA】结构化层次化设计

    结构化模型

    电路的功能和结构

    调用专用硬件,低级元件

    可综合

    结构化设计

    VHDL 结构化设计需要元件声明和元件例化

    结构化声明

    结构化VHDL描述了元件的安排和内联.

      注意与行为描述之区别,行为描述是描述对输入信号的响应

    结构化描述可以表示出代码和物理硬件之间更紧密的关系.

    结构化描述展示了任何抽象级别之间的连接.

    元件

    一个元件代表一个实体-结构对.

    使用元件可设计更复杂的电路.

    一个元件例化语句定义了设计实体中的位于更低层次的部分,

      使用信号将实体之间的端口相连接。可以对元件的类属进行赋值。

    元件必须在一个包中或者在结构中事先声明。

    元件声明和元件例化语句

    元件声明:用于声明端口类型和数据类型

    元件例化:端口映射

    元件例化是结构化描述的一个模块.

    元件例化过程需要元件声明和元件例化语句.

    元件例化声明了在结构内部元件之间的接口关系.

    例化时,仅接口可见   

      元件内部隐藏.

    例子:


    2-4 Decoder

    功能描述

      (1) EN=‘0’, Y <= “0000”;

      (2) EN=1,

        A=“00”, Y <=“0001”

        A =“01”, Y<=“0010”

        A =“10”, Y<=“0100”

        A =“11”, Y<=“1000”

      NOTE: A = A1A0 Y = Y3Y2Y1Y0

     

    3-8 Decoder

    功能描述

      (1) EN=0, Y<=x“00”

      (2) EN=1,

        If A2A1A0=“000”, Y<=x“01”;

        If A2A1A0=“001”, Y<=x“02”;

        If A2A1A0=“010”, Y<=x“04”;

        If A2A1A0=“011”, Y<=x“08”;

        If A2A1A0=“100”, Y<=x“10”;

        If A2A1A0=“101”, Y<=x“20”;

        If A2A1A0=“110”, Y<=x“40”;

        If A2A1A0=“111” , Y<=x“80”

    元件库

    元件可在包内声明. 并不一定非要在结构内

    Another 3-8 Decoder

     


    类属

    在例化之前,类属可使用户自定义元件.

    使用类属在实体和结构之间传递信息.

    类属的使用

      自定义定时

      改变子类型范围

      改变数组大小

    类属映射类似于端口映射,它是将某个值传递给类属.

     generic Map(L)


    可变总线宽度的全加器

     

    注意:

    a_tmp <= '0' & a ;

      这个叫做并置,看到没有,在定义Signal 时都是预留多一位。

    sum_tmp <= a_tmp + b_tmp + cin ;

      std_logic_vector的加法,就是加法。

      cin 作为1位的std_logic自动会转化到最低位。

    cout <= 截取低N位 (N -> 0) , ( N-1 -> 0)

    当L=3:

    当L=2:

    Generate 语句

    结构化 for-loop: Generate语句

      有些数字硬件中的结构是可重复的. (RAM, ROM, registers, adders, multipliers, …)

      VHDL 提供 GENERATE 语句自动产生元件.

      任何VHDL并发语句都可以包含在GENERATE语句中.

    所有的对象以相同的方式产生.

    GENERATE 参数必须是离散的,并在GENERATE 语句之外声明.

    例子:AND门阵列

     

     

    8-3 优先级编码器

     

     

  • 相关阅读:
    HTML5智能表单
    HTML表单
    CSS文档统筹
    二分查找/折半查找(C++实现)
    实验6:Problem H: 字符串类(II)
    实验6:Problem G: 字符串类(I)
    实验6:Problem F: 时间和日期类(IV)
    实验6:Problem E: 时间和日期类(III)
    实验6:Problem D: 时间和日期类(II)
    实验6:Problem C: 时间和日期类(I)
  • 原文地址:https://www.cnblogs.com/Osea/p/13192324.html
Copyright © 2011-2022 走看看