Home.Verilog.Digital Design.Digital Basics.Python.RF Basics.
Previous.
Next.
Custom Search

Feedback ? Send it to admin@fullchipdesign.com or join me at fullchip@gmail.com

Legal Disclaimer

Chip Designing for ASIC/ FPGA Design engineers and Students
FULLCHIPDESIGN
Digital-logic Design...  Dream for many students… start learning front-end…
Try navigation bar on top to explore the contents @ fullchipdesign

Legal Disclaimer

Custom Search

Initial Statements in Verilog

Initial statements with examples are discussed in this section. Also discussed are clocks and resets generation logic using forever loop and not operator.

Statements within initial block are used in Verilog for generating test signals, example clocks, resets etc.

Initial statements can’t be synthesized because actual behavior of hardware is difficult to model using fixed delays. These statements are used only for testbench purposes and to initialize the values at zero simulation time.

Example code

// Register declarations

reg clk_1fs;  

reg clk_1fs_d;  

reg rst_n;

// Use of initial statement to generate clocks 1fs and 1fs_d

initial begin 

     clk_1fs = 0; 

     clk_1fs_d = 0; 

     rst_n = 0;

     #100 rst_n = 1;

     forever begin

         #10 clk_1fs = 1;

         #11 clk_1fs_d = 1;

         #10 clk_1fs = 0;

         #11 clk_1fs_d = 0;

     end

end

 

 end

 

Another example of initial statement to generate clock and reset using not operator.

reg clk;
reg rstn;
// Initial block to generate clock and reset
initial
    begin
   clk = 0;  rstn = 0;  #100 rstn = 1;
   forever begin
       #10 clk = !clk;  end
end