verilog语言quartus功能仿真,计数错误!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了verilog语言quartus功能仿真,计数错误!相关的知识,希望对你有一定的参考价值。

请问我用quartus功能仿真,输入波形加上overwrite clock作为计数脉冲,为什么计数输出值会缺少几个数,会,0计到7直接到10,每8个数缺两个? 这个计数条件一直满足!
高手指点!
module period (votage,clk,Tt,Enable_Tt);
input votage,clk;
output [15:0] Tt;
output Enable_Tt;
reg [15:0] Tt;
reg [15:0] Tt_temp;
reg [15:0] Tt_temp2;
reg [15:0] Tt_temp3;
reg Enable_Tt;
parameter
Tt_delay=100;
initial
begin
Tt=0;
Tt_temp=0;
Tt_temp2=0;
Tt_temp3=0;
Enable_Tt=0;
end

always @(posedge clk)
if(!votage)
begin
Tt_temp=Tt_temp+1;
Tt=Tt_temp;
Enable_Tt=0;
Tt_temp2=0;
end
else
begin
Tt_temp2=Tt_temp2+1;
Tt_temp3=Tt_temp2;
if(Tt_temp3>Tt_delay)
begin
Tt_temp2=0;
Tt_temp=0;
Enable_Tt=1;
end

else
begin
Tt_temp3=0;
end

end
endmodule

╮(╯▽╰)╭为什么总是纠结在这些上面呢。
1。所谓功能仿真,就是你的code写完之后,你要实现的功能是否能work,比如你写一个计数器,让他计数到10,翻转,同时清零,重新计数,这就会是一个分频电路。那么功能仿真就是要验证你这个功能是否是正确的,别tmd计数到9就翻了,或者计数到10没有清0。功能仿真当然不考虑竞争冒险和门电路延迟,你只是看你的功能是否正确,你考虑延迟干嘛。
2。所谓综合后仿真,就是你刚才编出来的代码,第一个是否能被综合工具综合,如果可以综合,此时综合工具就会把相关的延迟信息加入进来,以判断你的代码是否会有什么问题,比如你要求的始终太快,cnt计数就会有问题了。此时的综合工具如synplify,xst,quatus(针对FPGA,如果是IC,会用dc等别的),如果你用quatus去跑跑仿真,就会比较清晰的看到延迟信息已经加入进来了
3。时序仿真是在IC上的了,各种timing问题了。FPGA就直接上板了,做那么多仿真毛用,直接上板,各种timing问题等着去解吧。
4。Modesim一般只用来功能仿真,它不能综合。
参考技术A 把代码贴出来吧! 参考技术B 你的CLK有问题吧。把代码贴出来看看。追问

帮忙看看,上板测试还好

追答

你又不是testbench,怎么会有initial?
reset都没有你就上板跑了。
改了一下,你再跑看看。

module period(voltage, clk, reset, Tt);
input voltage,clk,reset;
output[15:0] Tt;

reg [15:0] Tt;
reg [15:0] Tt_temp;

always@(posedge clk or negedge reset)
begin
if(~reset)
Tt <=16'b0;
Tt_temp <= 16'b0;
else if(!voltage)
Tt <= Tt_temp;
Tt_temp <= Tt_temp + 1'b1;
end if;
end
end module;

本回答被提问者采纳

如何在ModelSim中仿真Quartus的bdf文件和IP核

但是这里的Functional是基于门级网表的功能仿真,并不是HDL级的功能仿真。
首先需要将.bdf原理图文件转换为Verilog HDL等第三方EDA工具所支持的标准描述文件。在Quartus下,保持*.bdf为活动窗口状态,运行[File]/[Create/Update]/[Create HDL Design File for Current File]命令,在弹出窗口选择文件类型为Verilog HDL,即可输出*.v顶层文件。
Altera的基本宏功能的功能(行为)仿真模型在Quartus工具安装目录下的"eda\sim_lib"目录中:
Verilog HDL语言的仿真库文件为220model.v和altera_mf.v;
VHDL语言的仿真库文件为220pack.vhd、220model.vhd、altera_mf.vhd和altera_mf_components.vhd。
仿真时把相关库文件加到工程中去就行了。
参考技术A 但是这里的Functional是基于门级网表的功能仿真,并不是HDL级的功能仿真。首先需要将.bdf原理图文件转换为Verilog HDL等第三方EDA工具所支持的标准描述文件。在Quartus下,保持*.bdf为活动窗口状态,运行[File]/[Create/Update]/[Create HDL Design File for Current File]命令,在弹出窗口选择文件类型为Verilog HDL,即可输出*.v顶层文件。Altera的基本宏功能的功能(行为)仿真模型在Quartus工具安装目录下的"eda\sim_lib"目录中:Verilog HDL语言的仿真库文件为220model.v和altera_mf.v;VHDL语言的仿真库文件为220pack.vhd、220model.vhd、altera_mf.vhd和altera_mf_components.vhd。仿真时把相关库文件加到工程中去就行了。本回答被提问者采纳

以上是关于verilog语言quartus功能仿真,计数错误!的主要内容,如果未能解决你的问题,请参考以下文章

如何在ModelSim中仿真Quartus的bdf文件和IP核

对verilog的 仿真和综合有啥区别,具体一点

quartus ii 19.4和modelsim的仿真

Verilog的IDE Quartus II

Quartus与Matlab联合仿真问题

quartus里用原理图的方法进行仿真时,为啥输出比输入延迟了一个时钟周期,有啥解决的办法吗?