本文主要从网上收集各知识点汇总,如有侵权,请告之删除。
initial语句到底能否被综合呢?很多的网友说,initial语句只是在仿真时有用,只是为了给仿真一个初值,是不能综合的。另外在读文件时,也只是在综合器综合时,把文件值赋值给对应存储器。但是把上述代码,配置到开发板中,initial语句赋值的初值,是可以被配置到开发板中的,经过赋值不同的值,会有不同的流水灯。
下面是在quartus 中的模板代码中的说明。是可以利用下述模式进行赋初值的,VHDL中,大多都是用此方法进行赋初值的。initial语句和下面语句是等效的。
// Scalar reg with initial value. If the variable has no assigned value,
// Quartus Prime Integrated Synthesis will use the initial value. Integrated
// Synthesis will also infer power-up conditions for registers and memories
// from the initial value.
reg <variable_name> = <initial_value>;
如果在写verilog时,同时用复位赋初值,也用initial赋初值,那么综合器就会报出警告,说明赋值重复,并且按照复位赋初值的方式进行。
initial led = 4'b1110;
always @ (posedge clk, negedge rst_n) begin