天天看點

【FPGA】學習FPGA初步的教訓

寫作時間:2020-08-11

代碼

module c2(reset,clk_in,clk_out); 
input clk_in,reset; 
output clk_out; 
reg clk_out; 
 
always @(posedge clk_in) 
  begin 
    if(!reset)  clk_out=0; 
    else      clk_out=~clk_out; 
  end 
endmodule 
           

testbench

`timescale 100ns /100ps  //1ns是仿真時間,100ps是精度  ps是10^-12,ns是10^-9
`define clk_cycle 50 
module c2_vlg_tst();
// constants                                           
// general purpose registers
//reg eachvec;
// test vector input registers
reg clk_in;
reg reset;
// wires                                               
wire clk_out;

// assign statements (if any)                          
c2 i1 (
// port map - connection between master ports and signals/registers   
	.clk_in(clk_in),
	.clk_out(clk_out),
	.reset(reset)
);
                                              
                                                   
always  #`clk_cycle  clk_in = ~clk_in;    
initial                                             
// optional sensitivity list                           
// @(event1 or event2 or .... eventn)                  
begin                                                  
// code executes for every event on sensitivity list   
// insert code here --> begin    
     clk_in = 0; 
     reset = 1; 
    #100 reset = 0; 
    #100 reset = 1;   
	 
$display("Running testbench");   
#100 $stop;                                                    
//@eachvec;                                              
// --> end                                             
end                                                    
endmodule

           

modelsim 仿真

【FPGA】學習FPGA初步的教訓

一點坑總結:

1)我裝的是18.1lite ,應選擇modelsim_altera,而不是modelsim

2)仿真時間機關說明,

`timescale 100ns /100ps 表示: 1ns是仿真時間,100ps是精度 。

3)主程式的代碼命名,需要和檔案名一緻。其他的module 可以随便命名。

THE END~