当前位置: 首页 > wzjs >正文

无锡网站App微信百度网站优化

无锡网站App微信,百度网站优化,天津做网站的网络公司,服务器搭建网站空间关于 Verilog 中“禁止语句”的详细培训讲解**,结合可综合设计与仿真行为的角度,深入讲解 Verilog 中的“禁止类语句”(即综合时应避免或仅用于仿真的语句): 一、Verilog 中的“禁止语句”概念 所谓“禁止语句”&…

关于 Verilog 中“禁止语句”的详细培训讲解**,结合可综合设计与仿真行为的角度,深入讲解 Verilog 中的“禁止类语句”(即综合时应避免或仅用于仿真的语句):


一、Verilog 中的“禁止语句”概念

所谓“禁止语句”(或说非综合语句),是指 不能被综合工具(如 Vivado、Quartus、Synplify)综合到门级电路中,仅用于仿真或调试目的的语法结构。使用这些语句不会被转换为实际的逻辑门或触发器电路。

这些语句一般包括:

  • 延迟控制语句#
  • 系统任务与函数(如 $display, $finish, $stop, $time
  • 初始化行为initial 块中不可综合的内容)
  • 文件操作(如 $readmemh, $fopen, $fdisplay 等)

二、常见禁止语句汇总

类别示例用途是否可综合
延迟控制#10 a = 1'b1;仿真中添加时间延迟❌ 禁止综合
时间函数$time, $stime获取当前仿真时间❌ 禁止综合
显示输出$display, $monitor, $write打印调试信息❌ 禁止综合
仿真控制$stop, $finish控制仿真结束❌ 禁止综合
文件操作$readmemh, $fwrite, $readmemb读取或写入文件数据❌ 禁止综合
initial中行为initial a = 1'b0;初始化变量(综合视角中不能使用)❌ 一般禁止(除 LUT 初始化等特例)

三、为什么这些语句被禁止综合?

原因:

  1. 没有对应硬件结构:比如 #10 是等待 10 单位时间,但实际硬件中没有“等待器”这种逻辑。
  2. 属于软件行为:如 $display 是“调试信息打印”,与硬件结构完全无关。
  3. 在综合工具中没有实现路径:工具会忽略或直接报错,无法映射为电路。

✅ 四、仿真专用 vs 综合可用

类型说明示例建议
仿真专用语句不用于硬件生成,仅供行为验证使用$display, #10, $stop✅ 用于 testbench 中
综合语句可综合映射为门电路/触发器always @(posedge clk), if, case, assign✅ 用于设计模块
条件允许语句在特定上下文可用initial begin $readmemh(...) end✅ 在初始化 BRAM 时使用

五、典型错误示例与修正建议

示例 1:使用 #10 延迟

always @(posedge clk) begin#10 a = 1;  // ❌ 错误:不能综合
end

改为

always @(posedge clk) begina <= 1;  // 正确:同步逻辑
end

示例 2:使用 $display

always @(posedge clk) beginif (a == 1) $display("a is 1");  // ❌ 错误:调试语句
end

改为(若要调试)

// 在 testbench 文件中使用 $display,而不要在 RTL 代码中用

示例 3:初始化 ROM 内容

reg [7:0] rom[0:255];
initial begin$readmemh("rom_init.hex", rom);  // ✅ 仅用于仿真或特殊综合支持(如 BRAM)
end

注意

  • Vivado 可以综合该 initial 行为并映射为初始化的 ROM。
  • 需要 readmemh 形式正确,ROM 不能是组合逻辑。

六、如何定位禁止语句?

综合工具一般会给出如下错误或警告提示:

  • Vivado: Cannot synthesize non-constant delay expression
  • Quartus: Unsupported system task or function
  • Synplify: Unsupported delay control #

建议做法:

  • 在 RTL 中使用严格的时序风格(同步时序 + 异步复位)
  • 所有调试、打印、文件操作,全部在 testbench 中完成
  • 利用 ifdef SYNTHESIS 屏蔽仿真语句

示例:

`ifndef SYNTHESIS$display("Debug Message");
`endif

七、总结

内容分类是否可综合典型例子
行为级仿真语句❌ 不可综合$display, #, $stop, initial a=1
初始化内存有条件 ✅$readmemh(ROM 初始化时)
可综合语句always @(posedge clk), assign, case, if, FSM
http://www.dtcms.com/wzjs/329896.html

相关文章:

  • angular 做网站店铺推广方案怎么写
  • 石家庄做网站排名公司网站访问量统计工具
  • 怎么用java做网站中国十大品牌策划公司
  • 菏泽做公司简介网站手机app安装下载
  • 网站怎么做下载网页代码吗关键词英文
  • 做电商网站报价谷歌seo是指什么意思
  • 新疆交通建设管理局官方网站蒙牛牛奶推广软文
  • 新网站怎么做才会被收录北京百度推广客服电话多少
  • 学生如何做网站网站seo方案案例
  • 注册域名的官方网站济南头条新闻热点
  • wordpress自动采集图片seo外包是什么
  • 营销网站建设整合网站营销专家搜索引擎入口官网
  • 兴义市住房和城乡建设局网站seo矩阵培训
  • 网站建设设计780元全包搜狐新闻手机网
  • 有什么软件做短视频网站网站注册账号
  • 绍兴做网站哪家好千锋教育北京校区
  • Python做网站 性能常见的网络推广方式包括
  • 财务公司加盟哪个比较好东莞seo管理
  • 商务网站建设用的是什么软件怎么制作微信小程序
  • 重庆响应式网站建设找哪家长春头条新闻今天
  • 做网站有什么类型怎么引流客源最好的方法
  • 网站建设公司做网站要多少费用创建自己的网站怎么弄
  • 山东政府网站集约化建设seo的优化步骤
  • 莱芜网站推广重庆关键词seo排名
  • 工程建设招标网都有哪些网站网页设计和网站制作
  • 那个网站做创意图比较好优化大师win7官方免费下载
  • 网上接单做衣服哪个网站青岛做网站推广公司
  • 个人网站做导航网站推广平台排行榜
  • 常州网站建设费用网络营销与管理
  • 访问国外网站dns国外网站推广