Verilog语法规则

  • 模块声明类
  • 参数定义
  • 信号类型
  • 多语句定义
  • 比较判断和分支判断
  • 任务定义
  • 连续赋值
  • always模块
  • 赋值符号:=和<=(小等号)

模块声明类

module at7(<端口信号列表>...)
<逻辑代码>
endmodule

FPGA中常常定义各种模块,不同模块之间有接口,类似C语言中的不同函数,有不同的输入输出变量。

参数定义

parameter用于申明一些常量,便于模块的移植或升级时的修改。

信号类型

wire:不同寄存器之间的连线
reg:一个寄存器,可以进行赋值等操作

多语句定义

begin…end
可用于包含关系,相当于C语言中的{},若有强耦合关系的一组,则不需要用begin…end

begin    //可选申明部分//具体逻辑
end

比较判断和分支判断

比较判断:if…else

if()
begin
...
end
else
begin
...
end
if()
begin
...
end
else if()
begin
...
end
else
begin
...
end

分支判断:case…default…endcase

case(变量名)
取值1:具体逻辑1
取值2:具体逻辑2
取值3:具体逻辑3
default:具体逻辑4
endcase

任务定义

task…endtask 像是C语言中的子函数,有输入输出参数。
task是可综合的行为级语法,是顺序执行的,不是并行的。

task <task名>input 输入变量申明begin...end
endtask

连续赋值

  • assign
    assign可直接给wire型变量赋值:
    assign wire变量名 = 变量或常量
  • ?表达式
wire timer_cnt;
assign timer_vnt = (cnt == MAX_CNT_VALUE)?1:0;

always模块

//单个沿触发的时序逻辑
always @ (沿变化)
begin
...
end
//多个沿触发的时序逻辑
always @ (沿变化1 or 沿变化2)
begin
...
end

如:

always @ (posedge clk or negedge rst_n)
//上升沿posedge,下降沿negedge

赋值符号:=和<=(小等号)

=:阻塞,在组合逻辑中用,是顺序执行的
<=:非阻塞,在时序逻辑中用,两行语句在同一个时钟周期来到时是并行处理的

Verilog语法规则相关推荐

  1. 【系统设计】Verilog语法及示例(2)

    参考Verilog语法 | 教程 (ustc.edu.cn) 1.7 D触发器 D触发器是一个具有记忆功能.具有两个稳定状态的信息存储器件,是构成时序逻辑的最基本逻辑单元.其具有两个稳定状态,即&qu ...

  2. LLVM一些语法规则

    LLVM一些语法规则 LLVM文档 LLVM编译器基础架构支持广泛的项目,从工业强度编译器到专门的JIT应用程序,再到小型研究项目. 同样,文档分为几个针对不同受众的高级别分组: LLVM设计概述 几 ...

  3. 一文详解CMakeLists文件编写语法规则详解

    作者丨zhanghm1995@blog 来源丨https://blog.csdn.net/zhanghm1995/article/details/80902807 编辑丨3D视觉工坊 基本语法规则 C ...

  4. 从零开始React:一档 React环境搭建,语法规则,基础使用

    手挽手带你学React入门第一期,带你熟悉React的语法规则,消除对JSX的恐惧感,由于现在开发中都是使用ES6语法开发React,所以这次也使用ES6的模式进行教学,如果大家对ES6不熟悉的话,先 ...

  5. xml语法规则(一)

    一.XML语法规则 XML的文档和HTML的原代码类似,也是用标识来标识内容.创建XML文档必须遵守下列重要规则: 规则1:必须有XML声明语句 这一点我们在上一章学习时已经提到过.声明是XML文档的 ...

  6. [转]verilog语法学习心得

    verilog语法学习心得 1.数字电路基础知识: 布尔代数.门级电路的内部晶体管结构.组合逻辑电路分析与设计.触发器.时序逻辑电路分析与设计 2.数字系统的构成: 传感器  AD  数字处理器  D ...

  7. 【Groovy】Groovy 代码创建 ( 使用 Java 语法实现 Groovy 类和主函数并运行 | 按照 Groovy 语法改造上述 Java 语法规则代码 )

    文章目录 一.创建 Groovy 代码文件 二.使用 Java 语法实现 Groovy 类和主函数并运行 三.按照 Groovy 语法改造上述 Java 语法规则代码 一.创建 Groovy 代码文件 ...

  8. Spring Boot—thymeleaf语法规则以及使用

    文章目录 一.渲染机制 二.导入thymeleaf的名称空间 四.使用thymeleaf 五.语法规则 1.属性及属性的优先级 2.表达式 一.渲染机制 @ConfigurationPropertie ...

  9. Thymeleaf语法规则

    语法规则 th:text 改变当前元素里面的文本内容 th:任意html属性: 来替换原生属性的值 <!DOCTYPE html> <html lang="en" ...

最新文章

  1. Bash脚本: 根据关键字做替换
  2. SPSS实战应用案例50篇(一):从SPSS的角度讲清楚卡方检验
  3. 致27岁的老光棍天空
  4. Node.js下载安装及各种npm、cnpm、nvm、nrm配置(保姆式教程—提供全套安装包)—nrm的安装与配置(5)
  5. java中异常抛出后代码还会继续执行吗
  6. Linux Shell编程笔记一:相关命令
  7. java outputstrea_java的InputStream和OutputStream的理解【转】
  8. PPC软件安装方法汇总
  9. 一招教你如何使用.Net Core 3.0正式版创建Winform程序
  10. 创建oracle数据库实例
  11. Aspose.Cells 使用FreezePanes()冻结行和列
  12. C语言getc函数没错不管用,对比C语言中getc()函数和ungetc()函数的使用
  13. 服务器抓不到mrcp信息,启动百度Mrcp服务器出错 错误码: 323
  14. 什么情况下单独计算机械台班,投标or签证,机械台班价如何确认?
  15. 乡郎桑黄:什么是桑黄?桑树的价值有哪些?
  16. Numpy:repeat用法图解
  17. 操作系统(四)——文件管理
  18. 注册Outlook如何跳过手机验证
  19. 数字基带信号的功率谱密度
  20. 血族群机器人_【lay兴】 《Heartbeat》[上]古老血族 X 智能AI丨 Can you feel my heartbeat?...

热门文章

  1. 腾讯起诉快播侵权案确定:这打击结果超狠
  2. IDEA使用技巧大全
  3. 基于HBIC准则的混合PPCA的有效模型选择
  4. C++获取当前文件所在路径
  5. 解决Easyconnect安装后【登陆失败】的问题
  6. 13.仓储服务-API-仓库管理
  7. 反向迭代器(rbegin,rend)详解
  8. 微信小程序商城系列之购物车
  9. 转 使用迅雷下载百度云盘大文件方法
  10. Echarts 在柱形图上加横线,设置基准线,自定义tooltip