在模拟IP仿真时,通常会使用到上拉、下拉电阻设置(此时还不是网表或hi spice仿真),其上拉电阻对应信号可赋值为1,下拉电阻赋值为0。因此会使用到pullup或pulldown。如下举例(引自某度问答):
wire abc;
pullup(abc);
assign abc = enable ? 1’b0 : 1’bz;
enable为bai1的时du候 abc信号为0
enable 为0的时候 assign语句的输出为高阻,zhi但是因为pullup了abc,所以abc的值为1
pullup是不可综合的,其实需要在PCB上做一个dao上拉的电阻,然后在库里面选一个open drain的pad,把 enable接到pad的enable输入
如果是FPGA的话,看到这个语句, FPGA的综合器会自动知道把enable 接到pad的enable端 assign abc = enable ? 1’b0 : 1’bz;
但在实际的EDA数字仿真时,对应信号直接tie0/1其仿真效果一样,因此个人觉得pullup/down可能在数仿并无实际意义,应该在模拟电路仿真时才有实际的爬坡或缓降效果。
在数字电路仿真中,上拉电阻和下拉电阻的设置对于信号状态的定义至关重要。例如,当使用pullup将信号置为1,而pulldown将其置为0。在FPGA设计中,综合器会根据这些指令配置内部资源。然而,在实际的EDA数字仿真中,使用tie0/1也能达到相同效果,因此pullup/down在数仿中的意义更多在于逻辑表述。而在模拟电路仿真中,上拉下拉电阻则会产生真实的电流变化,影响信号的爬坡和缓降效果。在PCB设计时,需要在硬件层面实现这些电阻来确保正确工作。





