如何解决测试台不工作 modelsim 中的 z 和 x 状态
我在 verilog 上实现了冒泡排序代码。没有任何综合错误,但测试台在modelsim中不起作用。它显示 x 和 z 状态
model.add(Dense(1))
测试平台
module sort #(
parameter NUM_VALS = 5,parameter SIZE = 16
)( input wire clk,input wire [NUM_VALS*SIZE-1:0] in,output reg [NUM_VALS*SIZE-1:0] out
);
reg [NUM_VALS*SIZE-1:0] sorted_bus;
always @(posedge clk) begin
out <= sorted_bus;
end
integer i,j;
reg [SIZE-1:0] temp;
reg [SIZE-1:0] array [1:NUM_VALS];
always @* begin
for (i = 0; i < NUM_VALS; i = i + 1) begin
array[i+1] = in[i*SIZE +: SIZE];
end
for (i = NUM_VALS; i > 0; i = i - 1) begin
for (j = 1 ; j < i; j = j + 1) begin
if (array[j] < array[j + 1]) begin
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
end
end
end
for (i = 0; i < NUM_VALS; i = i + 1) begin
sorted_bus[i*SIZE +: SIZE] = array[i+1];
end
end
endmodule
解决方法
@dduy_le,我只是看着你的 ModelSim 屏幕,在我看来你还没有真正开始模拟。我认为它是说,一切都编译成功,并且它位于时间 = 0。如果您将时钟放在波形上,(右键单击时钟并发送到 Waves),您将能够验证是否是这种情况或不是。如果它确实表明您还没有脉冲时钟,您可以点击运行(在 0 PS 时间框旁边),这应该会启动 sim。然后,您需要确保运行时间足够长以查看时钟的上升沿。根据测试台中的posedge时钟语句,该时钟沿应将您的 IN 值设置为有效值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。