
就是配合测试用的数据或者是行为模型文件,一般来说verilog写的东西可以分成两类,一类是设计,就是具体的功能模块。另外一类是测试,就是testbench,激励文件属于这一类。他包含有接口的行为模型和配套的测试数据什么的。
module(
Sys_Clk_40M, //40M
Sys_Rst_n, //系统复位信号
StartSig,
OutPutSig
);
input wire Sys_Clk_40M;
input wire Sys_Rst_n;
input wire StartSig,
output wire OutPutSig;
reg OutPutSigTemp;
reg StartDlySig1;
reg StartDlySig2;
wire StartOkSig2;
reg [15:0]conter1ms;
/消除信号毛刺/
always @(posedge Sys_Clk_40M or negdge Sys_Rst_n) begin
if(!Sys_Rst_n) begin
StartDlySig1<=1'b0;
StartDlySig2<=1'b0;
end
else begin
StartDlySig2<=StartDlySig1;
StartDlySig1<=StartSig;
end
end
/得到start上升沿确认信号/
assign StartOkSig2=(~StartDlySig2) && StartDlySig1 ;
/分频,得到1ms时间/
always @(posedge Sys_Clk_40M or negdge Sys_Rst_n) begin
if(!Sys_Rst_n) begin
conter1ms<=1'b0;
end
else begin
if(StartOkSig2==1)
conter1ms<=16'd40000;
else if(conter1ms>1'b1)
conter1ms<=conter1ms - 1'b1;
else
conter1ms<=1'b0;
end
end
/输出时间为1ms的高电平/
always @(posedge Sys_Clk_40M or negdge Sys_Rst_n) begin
if(!Sys_Rst_n) begin
OutPutSigTemp<=1'b0;
end
else begin
if(conter1ms>1'b1 && conter1ms<=16'd40000)
OutPutSigTemp<=1'b1;
else
OutPutSigTemp<=1'b0;
end
end
assign OutPutSig=OutPutSigTemp;
//
endmodule
//自己再调试一下,我只是写出来了,没有调试,但是大体框架是对的。可能会修改较小的地方。
调用那段错了。module不对,直接写分频的文件名。
divider_code code1 divider_code code1(
CP(CP),
CP_1HZ(CP_1HZ),
CP_1KHZ(CP_1KHZ)
);
1 功能仿真 ( 前仿真 )
功能仿真是指在一个设计中, 在设计实现前对所创建的逻辑进行的验证其功能是否正确的过程。
布局布线以前的仿真都称作功能仿真, 它包括综合前仿真( Pre-Synthesis Simulation )和综合后仿真( Post-Synthesis Simulation )。 综合前仿真主要针对基于原理框图的设计 ; 综合后仿真既适合原理图设计 , 也适合基于 HDL 语言的设计。
2 时序仿真(后仿真)
时序仿真使用布局布线后器件给出的模块和连线的延时信息, 在最坏的情况下对电路的行为作出实际地估价。 时序仿真使用的仿真器和功能仿真使用的仿真器是相同的, 所需的流程和激励也是相同的; 惟一的差别是为时序仿真加载到仿真器的设计包括基于实际布局布线设计的最坏情况的布局布线延时, 并且在仿真结果波形图中,时序仿真后的信号加载了时延,而功能仿真没有。
以上就是关于verilog激励文件是什么全部的内容,包括:verilog激励文件是什么、verilog程序:晶振40M,检测输入信号的上升沿start, 输出时间为1ms的高电平。verilog程序该怎么写。、用Modelsim写了一个分频器的Verilog程序仿真,下面是写的测试激励代码,老是提示有错,求解、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)