求4选1选择器用modelsim仿真波形图,测试代码啊

求4选1选择器用modelsim仿真波形图,测试代码啊,第1张

四选一的verilog代码

module Orion_mux4_1(input [3:0] a , input [1:0] sel , output reg y);

always @ (a , sel)

begin

case (sel)

2'b00 : y = a[0];

2'b01 : y = a[1];

2'b10 : y = a[2];

2'b11 : y = a[3];

default: y = 1'bx;

endcase

end

endmodule

相应测测试代码:

`timescale 1ns/100ps

module Orion_mux4_1_tb;

//module Orion_mux4_1(input [3:0] a , input [1:0] sel , output reg y);

reg [3:0] a;

reg [1:0] sel;

wire y;

Orion_mux4_1 DUT ( a(a) , sel(sel) , y(y));

initial

begin

sel = 0;

a = 4'b0101;

repeat (20)

#2 sel = sel + 1;

end

endmodule

波形图:

贴不上,自己仿真一下吧。

对于前仿真,如何保证设计的结果是正确的呢?1:首先利用MATLAB产生测试向量。matlab必须产生定点的二进制补码字符串,这样才可以将数据写入到外面的文件中供modelsim读取。所以这里要利用matlab的定点设计函数fix,以及几个转换函数,比如说,dec2num等等。matlab中好像没有将有符号数转化为补码的,在这里我们可以利用有符号数补码的计算方法来自行编写一个int2signm2:接下来就是将产生的定点测试向量(N位二进制补码,N为设计的滤波器的输入位宽),利用matlab的文件读取功能存放在外部txt文件中。modelsim中读取该文件的数据,存放在存储单元中,供仿真测试。3:下面就会得到modelsim中的仿真结果。前面提到过,滤波器的设计输出是M位有符号数,所以从modelsim输出端口中得到的是M位二进制0、1,modelsim中对内部变量的读写只单纯的读写二进制或者代表的无符号实数。所以现在再次利用matlab,将从modelsim中读出的无符号数转换为其实质的有符号数,转换方法还是遵循前面一篇中第2点提到的那个补码产生原理。4:接下来,我们就可以对比分析了。还要注意一点就是,modelsim或者ISE中式没有小数概念的。所以之前设计时对输入数据我们是将其扩大了2^f倍,其中f是小数位数。对系数也是进行同样的放大。

modelsim仿真错误解决办法

编译不成功可能是因为:

1、本身程序有问题。

2、没有设置顶层文件

3、modelsim 出现错误是不要只是看错误的地方,也要看前面的一部分

以上就是关于求4选1选择器用modelsim仿真波形图,测试代码啊全部的内容,包括:求4选1选择器用modelsim仿真波形图,测试代码啊、如何用MATLAB来验证modelsim中的仿真结果、modelsim 仿真问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10137931.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存