quartus仿真不出
输入的激励有点小问题,没输出常见可能有二:1,复位信号的时间小于一个时钟周期,本设计中的START信号为0时至少要保持一个时钟周期以上,一般设计要求三个时钟周期;2,时序不对,因为你第一个进程产生敏感信号驱动下面两个进程,你给的激励永远不会触发后面两个进程,这时没有结果的根本原因,第一个进程有一个480分频信号产生驱动第二个进程,因此你START和stop或start和FIN都为1时,时钟信号要超过480拍,为了多输出几个结果应该远远大于480拍。
希望对你有帮助!
modelsim10.1下测试激励:经验证是没问题的。
`timescale 1ns/1ps
module test;
reg clk_240;
reg start;
reg stop;
reg fin;
wire [3:0] cha3,cha2,cha1,cha0;
wire [3:0] km1,km0;
wire [3:0] min1,min0;
taxi DUT(.clk_240(clk_240),.start(start),.stop(stop),.fin(fin),.cha3(cha3),
.cha2(cha2),.cha1(cha1),.cha0(cha0),.km1(km1),.km0(km0),.min1(min1),.min0(min0));
always #2 clk_240 = ~clk_240;
initial begin
clk_240 = 0;
start = 0;
stop = 0;
fin = 0;
#300;
start = 1;
stop = 0;
fin = 0;
#5000;
start = 1;
stop = 1;
fin = 0;
#5000;
start = 1;
stop = 0;
fin = 1;
#5000;
start = 1;
stop = 1;
fin = 0;
#5000;
start = 1;
stop = 0;
fin = 1;
#5000;
start = 1;
stop = 1;
fin = 0;
#5000;
start = 1;
stop = 0;
fin = 1;
#5000;
start = 1;
stop = 1;
fin = 0;
#5000;
start = 1;
stop = 0;
fin = 1;
#5000;
start = 1;
stop = 1;
fin = 0;
#5000;
start = 1;
stop = 0;
fin = 1;
#5000;
start = 1;
stop = 1;
fin = 0;
#5000;
start = 1;
stop = 0;
fin = 1;
#5000;
start = 1;
stop = 1;
fin = 0;
#5000;
start = 1;
stop = 0;
fin = 1;
#5000;
start = 1;
stop = 1;
fin = 0;
#5000;
start = 1;
stop = 0;
fin = 1;
#5000;
start = 1;
stop = 1;
fin = 0;
#5000;
start = 1;
stop = 0;
fin = 1;
#5000;
start = 1;
stop = 1;
fin = 0;
#5000;
start = 1;
stop = 0;
fin = 1;
#5000;
start = 1;
stop = 1;
fin = 0;
#5000;
start = 1;
stop = 0;
fin = 1;
#10 $stop;
end
endmodule
2024-10-28 广告