1、udp的使用场景
user-defined primitives (udps) 翻译过来就是用户自定义原语,常常用于构建组合逻辑模型和时序逻辑模型。
我们编写verilo代码时,定义寄存器使用的是reg 和always@(*clk*),运行vcs rtl仿真时,vcs能够识别此类信号是寄存器,能够模拟其行为模型。
然而在使用vcs进行网表仿真时,此时网表中寄存器名称是这样的sdff*_xxxx,其中sdff_xxxx是每个寄存器类型对应的标准cell的名称。
sdff_xxxx是每个fab厂家独有的名称,且在verilog规范中并没有相关术语,那么vcs等eda仿真工具是如何识别并且模拟其器件行为的呢?
实际上进行网表仿真时,eda工具会读取对应sdff_xxxx的udps模型,从而进行sdff_xxxx的行为模拟。
2、udps的语法说明
2.1. 2种类型
udps的分为combinational udp(组合逻辑)和 sequential udp(时序逻辑)。
combinational udp用于构建组合逻辑模型,常见有mux模块.
sequential udp用于构建寄存器和latch模型,sequential udp可以是边沿触发,也可以是电平触发。
2.2.基本语法规范
udp建模使用primitive表示建模开始,类似module,endprimitive表示建模结束,类似endmodule。
udp模型在描述层级上与module/endmodule属于同一等级,因此primitive/endprimitive不能出现在module/endmodule内部,就像不能在一个模块里出现module~module~endmodule~endmodule.
//语法错误module xxx(); primitive endprimitiveendmodule
每个udp有且只有一个输出,并且输出只有三种状态,0, 1, or x,不支持z状态。
每个udp可以由多个输入信号,如果输入信号为z,则当做x对待。时序udp至少允许9个输入信号,组合udp至少允许10个输入信号。
每个udp不支持定义inout类型的信号
时序udp的输出信号应该使用reg申明。
组合udp的输出信号不能使用reg申明。
时序udp可以使用initial语句定制仿真开始前output信号的初始值
2.3.udp state table(状态表)
udp模型使用状态表来描述模型的行为,
状态表中使用的各类变量见表40。例如r表示上升沿,f表示下降沿。*表示数值改变。
状态表中的每行以分号结束。
状态表本质上就是一个输入信号/输出信号组合的列表。
组合udp状态表中有一个冒号“:”,用于隔离输入和输出信号。
时序udp状态表中有当前状态,还有下一个状态,因此有2个冒号“:”,用于隔离输入、输出(当前状态)和下一个状态。
组合udp模型中,如果输入信号状态组合在状态表中没有指定,则输出会是x。
2.4.udp结构
本节可忽略,直接看案例
3、组合udp案例
如下案例为2选1的mux,sel为1时,out为in1;sel为0时,out为in0。
请注意:信号列表中,输出信号out在第一个。状态表中,out处于最后一列。
4、电平触发时序udps
如下案例为一个低电平触发的latch。
使用reg申明了一个内部变量,表示当前状态q,即当前udp的输出状态。
table中的q+代表的是下一个有效周期的输出状态。
5、边沿触发时序udp
如下所示为一个上升沿触发寄存器的模型。
其中notifier信号用于建立时间和保持时间检查,通过建立时间和保持时间检查,则notifier不变,时序检测不通过则notifier翻转,udp_dff输出为x态。
6、小技巧
将primitive类比成module,将endprimitive类比成endmodule,将table 类比成case,将endtable类比成endcase,你就知道该怎么写udp模型了。
7、总结
虽然使用udp能够构建网表时序逻辑和组合的逻辑的行为模型,但是仿真终究是仿真,无法做到与实际芯片行为完全一致,特别是在部分信号为x态时。因此网表仿真中如果x态的出现导致仿真出现问题,此时不代表电路真的存在问题,需要仔细分析原因,其中需要重点分析udp模型是怎么写的。
智能家居的第一道防线是什么
常见杂音问题及形成原理知识归纳
PIC单片机对烧录器电路的控制设计
中芯上海新十二寸厂欲强压台积电南京厂
台湾面板巨头友达光电终获投资内地“通行证”
Verilog UDPs的语法说明
有源整流器控制器可使功耗可降低 90%
linux修改文件权限
设置环境变量NALI_HOME如何指定工作目录
HTC将为中国移动打造5G云VR全套解决方案
软银在日本推出共享单车系统 欲打造单车界的“安卓平台”?
电流钳连接示波器怎么设置?
C-V2X车路协同是实现自动驾驶与智慧交通的关键技术
纳德拉和多位微软高管,成为西雅图海湾人足球俱乐部的股东
韩国vps和美国vps对比哪个比较好
电源内部系统的电磁兼容问题分析
信产部公布TD具体标准研发计划 终端为重点
污水螺旋板换热器按传热原理的分类介绍
飞睿科技雷达模组存在感应雷达模块的多普勒效应原理
包税进口,绝对优势