一般对于双向的数据总线来说,在系统中会有多个设备来驱动它的现象。
如果一个设备不用总路线时,不把它驱动为高阻态,在另一个设备要使用数据线时,就会出现多驱动的现象,在电路上会出现半高的电平,从而不知道这数据到底是1还是0了。
所以你注释掉的那一句其实是非常有必要的。
所以这一句af_data <= qout; 是不能这样写的。
还是得用这种,总线使能加中间变量的方法。
assign af_data = (!data_dir)?qout:8'bZZZZZZZZ;
inout [7:0] af_data;
改为 inout reg [7:0] af_data; 就可以了
已测试过,望及时采纳