微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > MAX+PLUSⅡ符号库特殊图元如何使用

MAX+PLUSⅡ符号库特殊图元如何使用

时间:06-13 来源:互联网 点击:

MAX+PLUSⅡ符号库提供了很多基本图元(Primitive, 又称原语)供图形设计文件调用, 这些图元大体上可分为缓冲器、 寄存器、 输入输出端口、 逻辑门图元等几类。其中寄存器和组合逻辑门的使用比较简单, 这里对另几类特殊图元的使用作一简单介绍。

1) 缓冲器类图元
在.gdf文件中所提供的缓冲器图元包括CARRY(进位缓冲器)、 CASCADE(级联缓冲器)、 EXP(逻辑扩展缓冲器)、 LCELL(逻辑单元缓冲器)、 MECLL(宏单元缓冲器)、 GLOBAL(全局缓冲器)、 SCLK(同步时钟缓冲器)、 SOFT(软缓冲器)、 TRI(三态缓冲器)、 OPNDRN和WIRE。 所有图元均可在Prim库中找到。除了TRI、 OPNDRN、 WIRE以外, 其它缓冲器图元都能对逻辑综合过程进行控制。多数情况下, 不必使用这些图元, 但是, 如果编译器提示所作的设计太复杂而无法处理, 用户就需要在设计中插入上述某些图元, 从而引导逻辑综合器产生所期望的结果。

(1) CARRY
CARRY可为一个逻辑块设定进位输出逻辑, 并作为另一个逻辑块的进位输入。 此图元在加法器和计数器中可用以实现快速进位链逻辑。一个CARRY可以馈送到一个或两个逻辑体(Cones of Logic)。
如果一个CARRY同时馈送到两个逻辑体, 那么其中一个且只能有一个逻辑体要由另一个CARRY作输出缓冲。 在这种情况下, 两个逻辑体会在同一个逻辑单元(LC)中实现。 对于加法器和计数器的第一级, 必须遵守这个规则来把相加和进位输出逻辑连在一起。
输出接到CARRY的逻辑体最多也只能有两个输入端, 第三个输入端只能来自CARRY的输入。
CARRY的输出不能送到OUTPUT或OUTPUTC引脚。 两个CARRY不能输出至同一个门。CARRY不能以INPUT或INPUTC引脚作为输入, 也不能以寄存器作为输入。

(2) CASCADE
CASCADE可以作为一个与门逻辑或者一个或逻辑的级联输出, 也可作为另一个与逻辑或者或逻辑的级联输入。 利用级联输入功能, 可以把一个组合逻辑的快速级联输出与该器件中另一个相邻的组合逻辑的输出相或或者相与。
一个CASCADE只能输出至一个门, 也只能从一个门得到级联输入, 并且这些门只能是“与门”或者“或门”, 如AND、 NAND、 BAND、 BNAND、 OR、 NOR、 BOR和BNOR等。
CASCADE不能输出至“异或门”(XOR), 也不能输出至寄存器, 更不能输出至OUTPUT或OUTPUTC引脚。 狄?摩根反演定理要求在一个级联链中相互级联的“与门”或“或门”的类型必须相同。 级联的“与门”不能输出至级联的“或门”, 反之亦然。 两个CASCADE不能输出至同一个门。
在逻辑综合过程中, 可以让编译器自动插入或删除CASCADE。 具体方法是通过对Cascade Chain逻辑选项作不同的设置来控制逻辑综合, 或在逻辑综合选项中对Cascade Chain做出选择。

(3) EXP
EXP表示在设计中需要一个扩展乘积项。 在器件中扩展乘积项是反相的。 是否要使用扩展乘积项要由目标逻辑极性决定。 例如, 如果一个EXP要输出至两个“与门”, 并且其中第二个“与门”有一个反相输入端, 那么在逻辑综合时, 输出至反相输入端的EXP就被删除, 而产生一个正逻辑。 输出至不带反相的输入端的EXP不会被删除, 而是被用来实现目标逻辑。(一般情况下,应由逻辑综合器来决定在哪里插入或删除EXP。)
在包含多个LAB的器件中, 一个EXP只能输出到在同一个LAB中的逻辑。 如果一个EXP要向不同LAB中的逻辑进行输出, 就必须为每个LAB复制一个EXP。 如果在一个设计中包含大量的EXP, 逻辑综合器就有可能把它们转换为LCELL, 目的是对乘积项和逻辑单元的使用进行平衡。

(4) GLOBAL
GLOBAL表示某信号一定要使用一个全局(同步)时钟(Clock)、 清除(Clear)、 置位(Preset)或输出使能(Output Enable)信号, 而不是由内部逻辑产生或由一般的I/O引脚来驱动。 根据各种系列器件所具备的全局信号的不同, 全局信号的使用也不同 。
如果一个输入引脚直接与GLOBAL的输入端相连, 那么GLOBAL的输出可作为另一个图元的时钟、 清除、 置位或输出使能等输入信号。这时GLOBAL的输出一定要与寄存器或TRI的输入端直接相连。 如果GLOBAL的输出端与TRI的输出使能端相连, 有可能需要在输入引脚与GLOBAL之间加一个非门。
全局信号的传输要比局部信号(Array Signals)快得多, 并且还会省出器件资源供其它逻辑使用。 GLOBAL常用来为整个设计或部分设计提供全局时钟。 为了检查寄存器所用的时钟是否是全局时钟, 可以查看报告文件(Report File)。
使用GLOBAL的另一种方法是用Logic Synthesis命令指示编译器自动选定设计中的一个已经存在的信号作为全局的时钟、 清除、 预置或输出使能信号。 操作方法是, 选择菜单命令Assign / Global Project Logic Synthesis, 在出现的对话框中选择Automatic Global栏中相应的选项即可。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top