微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 菜鸟问个关于多路选择器的testbench问题,望各位前辈赐教

菜鸟问个关于多路选择器的testbench问题,望各位前辈赐教

时间:10-02 整理:3721RD 点击:
4选一选择器,仿真后看波形貌似只有初始值,clk也是一直为0,不知什么原因,各位前辈帮忙看看!
`timescale 100ns/1ns
module mux4_1test;
  reg[3:0] in1,in2,in3,in0;
  reg s0,s1,clk;
  wire [3:0] out;
mux4_1 mux1(.s0(s0),.s1(s1),.in0(in0),.in1(in1),.in2(in2),.in3(in3),.out(out));
initial
   $monitor($time,"s=%b,out=%b\n",{s1,s0},out);
initial
begin
   clk=0;
   forever #30 clk=~clk;
end
initial
begin
   in0=0000;
   in1=0010;
   in2=0100;
   in3=1000;
   {s1,s0}=2'b00;
   #80{s1,s0}=2'b01;
   #50{s1,s0}=2'b10;
   #80{s1,s0}=2'b11;
end
endmodule

这是我写的多路器
module mux4_1(s0,s1,out,in1,in2,in3,in0);
  input s0,s1,in1,in2,in3,in0;
  output reg out;
  always@(*)
  begin
    case ({s1,s0})
      2'b00ut=in0;
      2'b01ut=in1;   
      2'b10ut=in2;
      2'b11:out=in3;
      default:out=2'bxx;
   endcase  
end
endmodule


是  :out

看错了-。-



   timescale 写大了,而timescale length默认100ns,改成了`timescale 1ns/1ps   数据长度也不匹配!
   其他问题还在找!还有什么问题望赐教

刚开始波形一直是初始值主要是timescale没写好,现在终于弄好了,菜鸟引以为戒

module mux4_1(s0,s1,out,in1,in2,in3,in0);
  input s0,s1,in1,in2,in3,in0;
  output reg out;
你的mux内,输入输出全都是1bit的;
但是tb内:
module mux4_1test;
  reg[3:0] in1,in2,in3,in0;
  wire [3:0] out;
却是4bits的,你想想原因在哪?
另外,clk是正常的,可以出正常波形。
最后,你的仿真,什么时候停止?你不告诉仿真器,仿真器怎么知道如何停止?
nitial
begin
   in0=0000;
   in1=0010;
   in2=0100;
   in3=1000;
   {s1,s0}=2'b00;
   #80{s1,s0}=2'b01;
   #50{s1,s0}=2'b10;
   #80{s1,s0}=2'b11;
   #100;
   $stop;//或者$finish
end

谢谢,数据长度不匹配已经改了,刚开始仿真的时候timescale写的不对clk都只有初始值,原来是因为显示不全。而且终止时间也没给,谢谢啦!哥



   谢谢,数据长度不匹配已经改了,刚开始仿真的时候timescale写的不对clk都只有初始值,原来是因为显示不全。而且终止时间也没给,谢谢啦!哥

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top