Verilog语言语句介绍

  • 结构语句
    • initial语句
    • always语句
  • 赋值语句
    • 阻塞赋值
    • 非阻塞赋值
    • 使用方法
  • 条件语句
    • if_else语句
    • case语句

结构语句

共有两个重要的结构语句 initialalways

  • initial
    在模块中只执行一次,常用于测试文件的编写,用来产生仿真测试信号(激励信号),或者用于对存储器变量赋初值
  • always
    语句一直在不断地重复活动,但是只有和一定的时间控制结合在一起才有作用

initial语句


initial表示代码只执行一次
begin,end表示initial的开始与结束
上电后同时执行sys_clk , sys_rst_n , touch_key语句
#xx代表延时xx个单位的时钟

图为Modelsim 仿真截图,由图可见
开始时,因initial有sys_clk , sys_rst_n , touch_key被赋值为0,经过20nm后sys_rst_n为1(1’b1),20+10nm时touch_key为1(1’b1)……
而always作用是每10nm对sys_clk取反。

always语句

  1. 沿触发
    always的时间控制可以是沿触发也可以是电平触发,可以是单个信号也可以是多个信号,多个信号用or连接(由or连接的多个事件名或信号名组成的列表称为敏感列表)
    注: posedage上升沿,negedge下降沿,always语句后紧跟的过程块是否执行要看触发条件是否满足,沿触发的always块常用来描述时序逻辑

  2. 电平触发
    电平触发的always块常用来描述组合逻辑
    或者使用*代替条件,代表对后面的语句块中所有输入变量的变化都是敏感的。

组合逻辑和时序逻辑复习
组合逻辑中,任意时刻的输出仅仅取决于该时刻的输入,与电路原来的状态无关
时序逻辑中,任意时刻的输出不仅取决于当时的输入信号而且还取决于电路原来的状态,或者说还与以前的输入有关,因此时序逻辑必须具备记忆功能

赋值语句

阻塞赋值

阻塞赋值,如 b=a

  • 阻塞幅值可以认为只有一个操作:计算RHS并更新LHS,在b=a中b就是LHS,a则为RHS。
  • 所谓阻塞的概念是指在同一个always块中,后面的赋值语句是在前一句赋值语句结束后才开始赋值的。

可以理解为赋值语句串行执行。

非阻塞赋值

非阻塞赋值,如b <= a

  • 可以看成两个操作:

    1. 赋值开始时计算RHS;
    2. 赋值结束时更新LHS。
  • 所谓非阻塞赋值的概念是指:在计算非阻塞赋值的RHS以及更新LHS期间,允许其他的非阻塞赋值语句同时计算RHS和更新LHS
  • 只能用于对寄存器类型的变量进行赋值,因此只能用于initial块和always块等过程块中

可以理解为赋值语句并行执行。

使用方法

在描述组合逻辑的always块中用阻塞幅值 =,综合成组合逻辑的电路结构,这种电路结构只与输入电平的变化有关系
在描述时序逻辑的always块中用非阻塞赋值 <=,综合成时序逻辑的电路结构,这种电路结构往往与触发沿有关系,只有在触发沿时才可能发生赋值变化
注意:在同一个always块中不要即用非阻塞幅值又用阻塞幅值,不允许在多个块中对一个变量进行赋值

条件语句

条件语句必须在过程块中使用(由initial和always语句引导的块语句)

if_else语句

同C语言相同
但是:

  1. if语句对表达式的值进行判断,若为0、x、z 则按假处理;若为 1 按真处理。
  2. if和else后面的操作语句可以用befin和end包含多个语句。
  3. 允许if语句嵌套

case语句

没有switch

  1. 分支表达式的值需要互不相同
  2. 所有表达式的位宽必须完全相等(不能用’bx代替n’bx )
  3. casez比较时不考虑表达式中的高阻态
  4. casex不考虑高阻态和不定值

    default表示前面的都不符合则执行default的语句

Verilog语言语句介绍相关推荐

  1. (111)FPGA面试题-介绍Verilog 块语句fork-join执行过程

    1.1 FPGA面试题-介绍Verilog 块语句fork-join执行过程 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题-介绍Verilog 块语句f ...

  2. (110)FPGA面试题-介绍Verilog块语句begin-end执行过程

    1.1 FPGA面试题-介绍Verilog块语句begin-end执行过程 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题-介绍Verilog块语句beg ...

  3. sql脚本语言中的循环语句介绍

    sql脚本语言中的循环语句介绍 –sql脚本语言的循环介绍: –1.goto循环点. declare x number; begin x:=0;–变量初始化: <<repeat_loop& ...

  4. FPGA之道(74)Verilog生成语句

    文章目录 前言 Verilog生成语句 循环生成 条件生成 generate-if语句 generate-case语句 前言 为什么要把这一节单独拎出来,因为个人原因,平时觉得用的Verilog生成语 ...

  5. Verilog语言与数字系统设计

    学习Verilog语言必要的基础知识 计算机导论 数字逻辑或数字电路与逻辑设计 计算机科学概论 拓展学习: 计算机组成原理 计算机体系结构 学习视频链接: 基于FPGA的Verilog语法基础课程(至 ...

  6. 对于Verilog语言的一些总结

    1.不使用初始化语句: 2.不使用延时语句: 3.不使用循环次数不确定的语句,如:forever,while等: 4.尽量采用同步方式设计电路: 5.尽量采用行为语句完成设计: 6.always过程块 ...

  7. 基于FPGA的数字电子琴——数电小系统设计【数字电子技术】(使用Vivado中的verilog语言)含piano代码文件(全)

    目录 一.电路功能描述 二.方案设计 1. 总体设计方案 2. 对原理框图或程序流程图做出简单解释 3. 各模块介绍 3.1 音频驱动模块 3.2 LED显示模块 3.3 数码管显示模块 3.4 矩阵 ...

  8. Verilog语言:还真的是人格分裂的语言

    人气腹语术师天愿在现场披露了被人偶搭档夺取灵魂的腹语术师将妻子杀害的表演节目.天愿真的陷入了多重人格,命令自己杀害妻子和子的人偶的人格出现了.为了不(让自己)杀害和弟子登川有外遇的妻子,天愿提出委托想 ...

  9. Verilog 语言细节

    Verilog 语言细节 一.关于常量 1.1 负数 ​ 负数在verilog里是按照补码储存的,也就是说 − 2 ′ b 1 = 11 -2'b1 = 11 −2′b1=11,但是需要注意的是,在比 ...

最新文章

  1. Ubuntu--开启TELNET服务
  2. tensorflow实践
  3. 看漫画学python 豆瓣_各种表示“看”的词语
  4. [Algorithm] Good Fibonacci
  5. 用SpriteBuilder简化quot;耕牛遍地走quot;的动画效果(二)
  6. python自动化办公-Python自动化办公室(1),python,一
  7. javscript DOM基础知识(常用篇)
  8. quartz 动态添加job_SpringBoot 集成Quartz发布、修改、暂停、删除定时任务
  9. Java的jdk安装与环境变量配置
  10. 服务器上文件添加可信任,如何将服务器配置为受信任以进行委派
  11. cad高程测绘图lisp_CAD地形图高程信息快速提取的技术与实现
  12. GraphPB:Graphical representations of prosody boundary in speech synthesis论文阅读
  13. matlab aic怎么用,AIC信息准则的编程
  14. 管理:49个终身受用的职场“顶级思维”!
  15. Beautiful Soup
  16. ⑤⭐全网首发☀️数据有道之数据库技术❤️干货大全【持续更新】❗❗❗
  17. python最全的图像拼接
  18. osx snow leopard下用homebrew 安装php5.3 + php-fpm
  19. 关于信息安全风险评估,你需要知道的
  20. 前瞻: 下一代网络 量子互联网

热门文章

  1. Mac上的PowerPoint保存时出现“连同字体保存”——“某些字体无法随演示文稿一起保存。仍然要保存演示文稿吗?”
  2. 算法工程师与java_java算法工程师的职责是什么?前景如何?
  3. 使用pg_repack实现在线vacuum
  4. 化工原理计算机辅助设计,化工原理课程设计心得三篇
  5. win7如何用双显示屏,如何设置
  6. 处nm是什么意思_“nm”是什么意思啊?
  7. 域名邮箱什么,如何开通自定义邮箱后缀的邮箱?
  8. WebRTC视频码率控制(一)—— CPU使用度检测
  9. 微信小游戏开发实战教程13-随机生成形状功能的实现
  10. 百度违规屏蔽关键词工具