Copyright © 2022-2024 aizws.net · 网站版本: v1.2.6·内部版本: v1.23.3·
页面加载耗时 0.00 毫秒·物理内存 63.4MB ·虚拟内存 1299.8MB
欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
门级建模中介绍的内置门单元,例如 and,or , nor 等,均属于 Verilog 自带的一整套标准原语,即通常所说的内置原语。
此外,Verilog 还为用户提供了自己编写原语的能力,这种原语就是用户自定义原语(User Defined Primitive,简称 UDP)。
在 UDP 中,不能调用其他 module 或 primitive,调用方式和门级原语完全相同。
UDP 类型主要有以下 2 种,后面将逐一介绍。
UDP 的定义不依赖于模块定义,因此可以出现在模块定义外,也可以单独在文件里定义。
UDP 格式定义如下:
primitive UDP_name ( output_name, list_of_input) ; output_declaration ; list_of_input_declaration ; [reg_declaration] ; [initial_statement] ; table list_of_table_entries ; endtable endprimitive
端口声明:
初始化
可以用 initial 语句对时序逻辑 UDP 的输出端口(reg 类型)进行初始化,该语句是可选的。
状态表
1. 与非门实例组合逻辑 UDP 中,状态表规定了不同的输入组合和相对应的输出值,没有指定的任意组合输出值为 x。一个简单的与非门 UDP 可以表示如下:primitive nand_my(ou ...