首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Verilog基本单元(primitives)

Verilog基本单元(primitives)

Verilog基本单元(primitives)
  • Verilog基本单元提供基本的逻辑功能,这些逻辑功能是预定义的,用户不需要再定义这些基本功能即可直接使用。
  • 基本单元是Verilog开发库的一部分。大多数ASIC和FPGA元件库是用这些基本单元开发的。基本单元库是自下而上的设计方法的一部分。
内置基本单元
  • Verilog HDL中提供了26个内置的基本单元:
        内置基本门:
        • 多输入门:and, nand, or, nor, xnor
        • 多输出门:buf, not
        • 三态门: bufif0, bufif1, notif0, notif1
        MOS开关
        • cmos, nmos, pmos, rcmos, rnmos, rpmos
        上拉/下拉电阻
        • pullup, pulldown
        双向开关
        • Tran, tranif0, tranif1, rtran, rtainif0, rtranif1
用户定义的基本单元UDP
  • UDP: 用户定义的基本单元,其行为和Verilog内部的基本单元相似。其功能用真值表定义。
  • 一个UDP可以替代多个基本单元构成的逻辑,因此可以大幅减少仿真时间和存储需求。
  • UDP只能有一个输出;
  • UDP可以有1到10个输入;
  • 所有端口必须为标量且不允许双向端口
  • 不支持逻辑值Z
  • 输出端口必须列为端口列表的第一个
  • UDP不可综合
多输入门
  • 多个输入,单个输出。
        与门and,与非门nand,或门or,或非门nor,异或门xor,异或非门xnor
  • 语法:
        门类型 [实例名] (output, input1, …, inputN);
        例:nand nand1(Y, A, B); //2输入与非门
                xor xor1 (Y, A, B, C); //3输入或非门
多输出门
  • 一个输入,可以有一个或多个输出
        buf:缓冲门
        not:非门(反相器)
    例:buf buf1(Out[0],Out[1],Out[2],In);
                not not2(Out,In);
三态门
  • 用于对三态驱动器建模。有三个端口:一个数据输入端、一个控制信号输入端、一个数据输出端。
        bufif0, bufif1, notif0, notif1
        例:
        bufif0 BF1(out, enable, data);
        // 当enable=0时, out=data, enable=1时, out=z
        // 即使能信号无效时,输出高阻状态。


上拉/下拉电阻、 MOS开关、双向开关
  • 上拉/下拉电阻:
        只有一个端口(输出端),上拉输出为1,下拉输出为0。
  • MOS开关:
        单向开关,数据由输入端流向输出端,控制信号控制MOS晶体管导通或不导通。
  • 双向开关
        数据在两个端口之间双向流动,并能够通过控制信号对开关进行关闭。
继承事业,薪火相传
返回列表