我看夏宇闻老师的《Verilog 数字系统设计教程》第十一章例组合逻辑二一个三态数据通路控制器
代码:
`defineON1`defineOFF1modulezhlj2(LinkBusSwitch,outbuf,inbuf,bus,clk); input LinkBusSwitch; input[7:0] outbuf; output [7:0] inbuf; input clk; inout [7:0] bus; wire LinkBusSwitch; wire [7:0] outbuf; reg [7:0] inbuf; wire [7:0] bus; assign bus=(LinkBusSwitch == `ON) ? outbuf :8always @(posedge clk) beginif(!LinkBusSwitch) inbuf<=bus;endendmodule
仿真代码:
`timescale1ns/1ps module zhlj2_vlg_tst();reg clk; reg [7:0] outbuf;reg LinkBusSwitch; wire [7:0] bus; wire [7:0] inbuf;zhlj2 i1 (.LinkBusSwitch(LinkBusSwitch), .bus(bus), .clk(clk), .inbuf(inbuf), .outbuf(outbuf) ); initial beginLinkBusSwitch=0; clk=0;foreverendinitial begin$finish; end endmodule
有一处波形不对,就是outbuf=238时,显示-18.
波形图如下:

请问高手,怎么回事?谢谢!