news 2026/6/10 20:39:50

25.verilog语法之always

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
25.verilog语法之always

一、always语句介绍

module是一个模块的语法,或者说是一个电路模块的语法,然后FPGA代码中见的最多的应该就是alwsys语句了。

到处都是alwsys,那么alwayls怎么意思呢?

例如最常用的一句:

always @(posedge clk or negedge rst_n)

关键字always就是一直的意思,就是上电后这个模块会一直运行下去

@是探测变化的意思,就是小括号内的信号只要安装规定的动作变化就能被探测到。

小括号的内容就是该模块运行的条件,

关键字posedge是取上升沿的意思,posedge clk就是clk这个信号的上升沿是触发条件;negedge就是取下降沿的意思,negedge rst_n就是rst_n这个信号的下降沿是触发条件;or就是posedge clk和negedge rst_n这两个条件有一个达到这个模块就会运行。

于是乎,FPGA代码阅读就变得特别简单了。。。

always @(posedge clk or negedge rst_n) begin if (!rst_n) begin q <= 1'b0; end else begin q <= d; end end

二、FPGA 编码的「黄金规范」

时序逻辑(生成寄存器)

  1. 一个 always 块对应一个时钟域 + 一组强关联的时序动作,可赋值多个信号,拒绝「一个信号一个 always 块」;
  2. 必须用非阻塞赋值<=,模拟硬件并行更新;
  3. 触发列表必须包含时钟沿,异步复位需加复位沿,同步复位仅加时钟沿;
  4. 寄存器的更新 / 复位仅在触发沿到来时发生,非触发沿保持原值。

组合逻辑(无寄存器)

  1. 一个 always 块对应一个独立的组合逻辑功能,可赋值多个相关输出;
  2. 必须用阻塞赋值=,模拟硬件实时连线;
  3. 触发列表用always @(*)(自动敏感列表),避免漏写输入导致的综合毛刺

通用规则

  1. 不同时钟域、不同复位方式的逻辑,必须分开写 always 块
  2. 寄存器信号必须在 always 块内赋值,且只能在一个 always 块内赋值(多驱动会导致硬件冲突,综合报错);
  3. 所有寄存器必须有复位值(避免上电后状态未知,FPGA 设计的硬性要求)。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/31 12:26:42

【Linux命令大全】008.磁盘维护之sfdisk命令(实操篇)

【Linux命令大全】008.磁盘维护之sfdisk命令&#xff08;实操篇&#xff09; ✨ 本文为Linux系统磁盘维护命令的全面汇总与深度优化&#xff0c;结合图标、结构化排版与实用技巧&#xff0c;专为高级用户和系统管理员打造。 (关注不迷路哈&#xff01;&#xff01;&#xff01;…

作者头像 李华
网站建设 2026/6/10 13:00:57

javascript之break和continue

javascript的break语句是中断这次循环&#xff0c;循环不再进行 比如计算1-20的累加&#xff0c;当累加值到66时停止计算&#xff0c;输出累加值和当前整数值 let sum0for(let i1;i<20;i){sumsumiif(sum>66){console.log("当前的整数:"i)break}}console.log(…

作者头像 李华
网站建设 2026/6/10 13:03:36

2026 网络安全行业深度解析:前景、入行路径与系统学习指南

2026 网络安全行业深度解析&#xff1a;前景、入行路径与系统学习指南 一、行业发展现状&#xff1a;风口上的黄金赛道 2026 年的网络安全行业已从 “被动防御” 迈入 “主动对抗” 的全新阶段&#xff0c;三大核心驱动力让行业持续保持高速增长。 政策层面&#xff0c;《网…

作者头像 李华
网站建设 2026/6/6 7:04:08

【TVM教程】设备/目标交互

TVM 现已更新到 0.21.0 版本&#xff0c;TVM 中文文档已经和新版本对齐。 Apache TVM 是一个深度的深度学习编译框架&#xff0c;适用于 CPU、GPU 和各种机器学习加速芯片。 在线运行 TVM 学习教程 链接是&#xff1a;https://hyper.ai/notebooks/48919?utm_sourceDistribu…

作者头像 李华