Verilog的综合指令

Synopsys综合指令

综合指令(Synthesis directives)是一些特殊的注释,一般以//synopsys、/*synopsys、//$s或//$S开始,能够影响综合工具的行为,但是在其他工具看来这就是普通的注释。

常见的综合指令有:

  • async_set_reset
  • async_set_reset_local
  • async_set_reset_local_all
  • dc_tcl_script_begin and dc_tcl_script_end
  • enum
  • full_case
  • infer_multibit and dont_infer_multibit
  • infer_mux
  • infer_onehot_mux
  • keep_signal_name
  • one_cold
  • one_hot
  • parallel_case
  • preserve_sequential
  • sync_set_reset
  • sync_set_reset_local
  • sync_set_reset_local_all
  • template
  • translate_off and translate_on

full_case和parallel_case

结论:不要用!!!

有一句神话说:这两条指令会使设计变得更小更快,而且不会生成latch。事实上,这两条指令可能会对设计毫无影响、没有什么作用;甚至把设计变得更大更慢,还是会有latch生成出来。而且这两条指令可能会把设计的功能改变,导致前后仿结果不一致,所以这两条指令其实是危险的,最好是在Verilog中避免使用到。

full_case

设置了full_case语句代表的是case语句中即使没有default也认为现在的case目前的所有情况已经完整,不会有其他情况出现。下面看三个使用full_case的例子

module mux3d(y,a,b,c,sel);
input [1:0] sel;
input a,b,c;
output reg y;
always@(a or b or c or sel) begin
	//y = 1'b0;
	case(sel) //synposys full_case
	2'b00 : y=a;
	2'b01 : y=b;
	2'b10 : y=c;
	2'b11 : y=1'b0;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烟花一时

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值