verilog 连续赋值驱动能力配置

在调试iic(mdio)接口的时候发现时钟和数据管脚默认都是输出低电平,但是实际上我在逻辑中都是分别赋值为高阻态,为什么选通输出后就变低了呢?解释一下公司的测试接口是iic和mdio,由于都是2wire,所以需求是根据协议可以自由切换接口,也就是说同一对接口要兼容两种不同的协议,同时数据线又是inout型,所以选通赋值有些复杂,但是也不难。

平台使用的是cyclone IV 器件,所以用signaltap抓波形,发现监控几个内部信号后就正常了,所以怀疑是内部wire 赋值驱动能力不足或者是被优化掉了,一般只有A厂会出现这种问题,X厂的工具考虑的比较完善,一般都会帮你自动修复这种问题。最后扒出verilog 协议,果然有驱动强度的语句。

verilog 连续赋值驱动能力配置_第1张图片

verilog 连续赋值驱动能力配置_第2张图片

可以自定义逻辑1和逻辑0是的信号驱动能力,于是将其分别设置为highz1, highz0,问题解决!

 

你可能感兴趣的:(FPGA,verilog,quartus,altera)