Vhdl 弱';H';,模拟中输入输出双向信号的上拉

Vhdl 弱';H';,模拟中输入输出双向信号的上拉,vhdl,modelsim,Vhdl,Modelsim,有没有办法告诉模拟器(我使用的是Modelsim)当信号不是由任何一个双向接口驱动时,将信号拉到弱“H”位置 例如,如果我有一个I2C信号I2C_SDA,它被声明为来自2个模块的输入输出。一个是我的实际UUT,另一个是测试台。两者都有这样的说法: io_i2c_sda <= r_I2C_DATA when r_I2C_DATA_EN = '1' else 'Z'; io_i2c_sda对于VHDL,应该可以简单地向信号添加一个额外的驱动器(必须是std_逻辑类型),并使用常量值“H”。

有没有办法告诉模拟器(我使用的是Modelsim)当信号不是由任何一个双向接口驱动时,将信号拉到弱“H”位置

例如,如果我有一个I2C信号I2C_SDA,它被声明为来自2个模块的输入输出。一个是我的实际UUT,另一个是测试台。两者都有这样的说法:

io_i2c_sda <= r_I2C_DATA when r_I2C_DATA_EN = '1' else 'Z'; 

io_i2c_sda对于VHDL,应该可以简单地向信号添加一个额外的驱动器(必须是std_逻辑类型),并使用常量值“H”。在Verilog中,我们将使用一个简单的“1”驱动程序和网络类型
wand
来实现有线和无线连接H’特别指弱高驱动器,因此它将被低驱动器覆盖

这是实际硬件中会发生的事情,还是您正在美化您的测试台?:)这是一个I²C总线上通常存在的上拉电阻器的测试台模拟。是的,在VHDL中,只需使用
io_i2c_sda在测试台上添加一个连续赋值哇,我不知道你能做到这一点。谢谢@MortenZdk。为了向阅读本文的其他人澄清,如果您通过导线将两者映射在一起,我们称之为w_I2C_SDA,您也可以通过组合赋值来分配此导线。w_I2C_SDA如果您正在编写一个三态缓冲区,您可能还希望使用to_UX01(my_信号),它将执行强度降低,即将H和L分别解释为“1”和“0”。