热度 5
2023-9-5 12:29
713 次阅读|
0 个评论
使用ALTERA器件和其编译软件设计逻辑电路的时候,经常会遇到逻辑单元被综合优化掉的事情。这时候可以通过添加综合“保留”属性来将不希望被综合优化掉的信号节点保留下来。具体做法对于VHDL来说是这样的: signal a_sig,b_sig,regout:std_logic_vector(511 downto 0); attribute keep:boolean; attribute keep of a_sig: signal is true; attribute keep of b_sig: signal is true; 而对于Verilog而言,如果信号为wire型,则 wire w1 /*synthesis syn_keep*/; 如果信号为reg型,则 reg r1 /*synthesis syn_preserve*/ ; 或者 reg r1 /*synthesis syn_noprune*/ ; 当前在使用VHDL添加综合保留属性的时候遇到一个问题,即同样的代码在QII13.0+CycloneVGX时候没有问题,但是在Quartus Prime 22.4 + Cyclone10GX的时候失去了效果,给出下述警告信息的同时将这些节点全部综合优化掉了。 Warning(14284): Synthesized away the following node(s): Warning(14285): Synthesized away the following node(s) of type LCELL buffer: Warning(14320): Synthesized away node "inst18" Warning(14320): Synthesized away node "inst19" Warning(14320): Synthesized away node "inst3|u_TDL_CC_Top|a_sig " Warning(14320): Synthesized away node "inst3|u_TDL_CC_Top|a_sig " ........................................................................................................................................