[modelsim] modelsim仿真的问题

[复制链接]
 楼主| 比神乐 发表于 2023-3-25 11:55 | 显示全部楼层 |阅读模式
我看夏宇闻老师的《Verilog 数字系统设计教程》第十一章例组合逻辑二一个三态数据通路控制器代码:
  1. `define ON 1'b1
  2. `define OFF 1'b0

  3. module zhlj2(LinkBusSwitch,outbuf,inbuf,bus,clk);
  4. input LinkBusSwitch;
  5. input[7:0] outbuf;
  6. output [7:0] inbuf;
  7. input clk;
  8. inout [7:0] bus;

  9. wire LinkBusSwitch;
  10. wire [7:0] outbuf;
  11. reg [7:0]  inbuf;
  12. wire [7:0]  bus;

  13. assign bus=(LinkBusSwitch == `ON)  ? outbuf : 8'hzz;

  14. always @(posedge clk)
  15.         begin
  16.                 if(!LinkBusSwitch)
  17.                         inbuf<=bus;
  18.         end
  19.        
  20.        
  21. endmodule


仿真代码:

  1. `timescale 1 ns/ 1 ps
  2. module zhlj2_vlg_tst();
  3. // constants                                          
  4. // general purpose registers
  5. //reg eachvec;
  6. // test vector input registers
  7. //reg [7:0] treg_bus;
  8. reg clk;
  9. reg [7:0] outbuf;
  10. // wires                                               
  11. reg LinkBusSwitch;
  12. wire [7:0]  bus;
  13. wire [7:0]  inbuf;

  14. // assign statements (if any)                          
  15. //assign bus = treg_bus;
  16. zhlj2 i1 (
  17. // port map - connection between master ports and signals/registers   
  18.         .LinkBusSwitch(LinkBusSwitch),
  19.         .bus(bus),
  20.         .clk(clk),
  21.         .inbuf(inbuf),
  22.         .outbuf(outbuf)
  23. );


  24. initial                                                
  25. begin                                                  
  26. // code that executes only once                        
  27. // insert code here --> begin
  28.         //begin
  29.                 LinkBusSwitch=0;
  30.                 clk=0;
  31.         //end
  32.         forever
  33.                 #5 clk=~clk;
  34. end

  35. // --> end                                             
  36.    initial
  37.                 begin

  38.                        
  39.                         #20 outbuf=15;
  40.                         #20 outbuf=38;
  41.                         #20 LinkBusSwitch=1;
  42.                        
  43.                         #20 outbuf=122;
  44.                         #20 outbuf=238;
  45.                         #20 outbuf=72;
  46.                        
  47.                         #20 LinkBusSwitch=0;
  48.                         #20 outbuf=55;
  49.                         #20 outbuf=0;
  50.                         $finish;
  51.                 end
  52.        
  53.                                              
  54. endmodule

有一处波形不对,就是outbuf=238时,显示-18.
波形图如下:

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评论

学习中  发表于 2023-4-26 11:04
您需要登录后才可以回帖 登录 | 注册

本版积分规则

470

主题

3535

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部