[modelsim]

modelsim仿真的问题

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

module zhlj2(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 : 8'hzz;

always @(posedge clk)
        begin
                if(!LinkBusSwitch)
                        inbuf<=bus;
        end
       
       
endmodule


仿真代码:

`timescale 1 ns/ 1 ps
module zhlj2_vlg_tst();
// constants                                          
// general purpose registers
//reg eachvec;
// test vector input registers
//reg [7:0] treg_bus;
reg clk;
reg [7:0] outbuf;
// wires                                               
reg LinkBusSwitch;
wire [7:0]  bus;
wire [7:0]  inbuf;

// assign statements (if any)                          
//assign bus = treg_bus;
zhlj2 i1 (
// port map - connection between master ports and signals/registers   
        .LinkBusSwitch(LinkBusSwitch),
        .bus(bus),
        .clk(clk),
        .inbuf(inbuf),
        .outbuf(outbuf)
);


initial                                                
begin                                                  
// code that executes only once                        
// insert code here --> begin
        //begin
                LinkBusSwitch=0;
                clk=0;
        //end
        forever
                #5 clk=~clk;
end

// --> end                                             
   initial
                begin

                       
                        #20 outbuf=15;
                        #20 outbuf=38;
                        #20 LinkBusSwitch=1;
                       
                        #20 outbuf=122;
                        #20 outbuf=238;
                        #20 outbuf=72;
                       
                        #20 LinkBusSwitch=0;
                        #20 outbuf=55;
                        #20 outbuf=0;
                        $finish;
                end
       
                                             
endmodule

有一处波形不对,就是outbuf=238时,显示-18.
波形图如下:
0.jpg
请问高手,怎么回事?谢谢!

使用特权

评论回复
评论
s309150008 2023-4-26 11:04 回复TA
学习中 

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

337

主题

3057

帖子

7

粉丝