标签:完成 注释 initial height mes 执行 bsp 时序 需要
预编译,就是在verilog进入编译器前的准备工作。一般是完成一些文件的调用,一些编译器的设置,一些参数的定义。一般使用include,define,timescale就可以实现。比较灵活的使用是ifdef和endif的插入,可以将预编译的功能拓展。
`define WIDTH 8 `include "demo_include.v" `include "demo_h.h" `timescale 10ns/1ns `define cut module demo; reg [`WIDTH-1:0] s1; //different from parameters reg clk; demo_include U1( .clk(clk) ); initial begin #1 $display(`WIDTH); #2 `ifdef cut $stop; `endif #2 $display(`HEIGHT); $stop; end endmodule
上面的事例包括了定义了参数,引用了文件,设置时序间隔。
主要需要注意的是ifdef-endif的使用:
这里的使用方法就是将ifdef定义的宏作为开关使用,控制特定的代码段是否工作。类似一个可选择性注释的开关。
还有其他的作用,一般是编辑器的设置,这里不多介绍,这里记住这个使用方法就可以。
注意预编译区的代码也是按照前后顺序依次执行的。使用ifdef需要注意顺序,define要在ifdef前面使用。同理,也可以使用ifdef优化参数,对参数进行分类。
预编译的内容不是特别复杂,一般用于提高设计的普适性和灵活性。在复杂设计时,应当注意预编译的充分利用以提高设计的效率。
标签:完成 注释 initial height mes 执行 bsp 时序 需要
原文地址:https://www.cnblogs.com/electricdream/p/13406170.html