【Verilog】一、always使用

有不足请各位观众老爷批评指正~

零、背景知识
组合逻辑:输出仅与当前输入有关(没有记忆)
时序逻辑:输出与当前输入、之前输入有关(有记忆)

一、Verilog HDL 模块的模板(仅考虑用于逻辑综合的程序)

module<顶层模块名>(<输入输出端口列表>);output 输出端口列表;input 输入端口列表;//(1)使用assign语句定义逻辑功能wire<结果信号名>;assign<结果信号名>=表达式;
//(2)使用always块定义逻辑功能always@(<敏感信号表达式>)begin//过程赋值语句//if语句//case语句//while,repeat,for循环语句//task,function调用end
endmodule
//(3)元件例化

二、always使用
always时间控制:沿触发或电平触发
单个信号或多个信号(中间用关键词or连接)
1、沿触发
功能:常用于描述时序行为。e.g.有限状态机

always @(posedge a, negedge b)/*posedge:上升沿;negedge:下降沿。
Verilog1364-2001版本,关键词or可用,代替 */
begin……
end

说明:两个沿触发的always块只要其中一个沿出现,就立即执行一次过程块
2、电平触发
功能:常用于描述组合逻辑行为
(1)

always @( a or b or c)begin……end

说明:多电平触发时,只要a、b、c中任何一个出现从高到低或从低到高的变化,就执行一次过程块

(2)

always @*//或写成always @(*)begin……end

说明:对其后面的语句块内所有输入变量都敏感,任何输入变量的变化都会触发条件

】来个练习

当clk和reset信号都处于下降沿时,mem会被清0吗?
答案是不会
“always@()表示对其后面的语句块中出现的所有输入变量的变化是敏感的。”也就是对语句块中赋值符号右边的变量值的变化敏感,此题中always@()语句块中右值并不是变量,也就不会发生变化。

3、

always #5 b = ~b;//每隔5个单位时间触发一次条件

产生周期为10的无限延续的信号波形
功能:描述时钟信号,并作为激励信号来测试所设计的电路
注:always period = ~period;此时无时序控制,会使仿真器产生死锁

三、关于always的一些说明
1、一个模块中可有多个always块,并行运作
2、若always块可综合,则表示的是某种结构;若always块不可综合,则表示的电路结构的行为

四、需要注意的地方
1、assign不能再always中使用
2、assign和实例应用可独立于过程块存在

//部分资料来自网络(CSDN的一篇文章,找到了会补上~)、《verilog数字系统设计教程》夏宇闻

【Verilog】一、Verilog的always使用相关推荐

  1. (69)FPGA模块调用(system Verilog调用Verilog)

    (69)FPGA模块调用(system Verilog调用Verilog) 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)FPGA模块调用(system Verilog ...

  2. (66)FPGA模块调用(Verilog调用Verilog)

    (66)FPGA模块调用(Verilog调用Verilog) 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)FPGA模块调用(Verilog调用Verilog) 5)结 ...

  3. 再说System Verilog 与 Verilog 的关系

    System Verilog 与 Verilog 的关系 标准 当前的System Verilog标准是由IEEE(国际电子电气工程师协会)和Accellera(基于工业的标准协会)两个国际组织制定的 ...

  4. linux verilog 编译,Verilog 编译指令简介

    导读 以反引号 ` 开始的某些标识符是 Verilog 系统编译指令.编译指令为 Verilog 代码的撰写.编译.调试等提供了极大的便利. 下面介绍下完整的 8 种编译指令,其中前 4 种使用频率较 ...

  5. verilog HDLBits Verilog语法

    逐位逻辑运算符(&,|)和逻辑运算符(&&,||)之间的差别: 逐位逻辑运算符:对于 N 比特输入向量之间的逻辑比较,会在 N 比特上逐位进行,并产生一个 N 比特长的运算结果 ...

  6. 【Verilog】Verilog的八个经典入门例题

    Verilog的八个经典入门例题 文章目录 Verilog的八个经典入门例题 前言 一.7人表决器设计 二.8位的ALU设计 三.JK触发器的设计 四.环形计数器 五.二进制整数除法器设计 六.排序任 ...

  7. verilog/system verilog语法

    1,Verilog有变量类型和线网类型.变量类型比如reg,integer和time.线网类型比如wire,wor,wand等.system verilog使用了Verilog的变量类型:reg,in ...

  8. 【Verilog】——Verilog简介

    目录 1.简介 2.什么是HDL以及HDL的功能 3.Verilog和C语言的比较 4.Verilog的用途 5.数字系统的抽象层次 1.系统级 2.算法级 3.RTL级(寄存器变换级) 6.数字系统 ...

  9. 【Verilog】Verilog定义二维数组(2D Array)

    目录 定义的种类 第一种 赋值方法 第二种 赋值方法 第三种 赋值方法 定义的种类 首先看几组定义类型 第一种 定义一个位宽为8的 data1(reg) 和 data2(wire) 的变量. reg ...

  10. 芯片开发语言:Verilog 在左,Chisel 在右

    来源 | 老石谈芯 在最近召开的RISC-V中国峰会上,中科院计算所的包云岗研究员团队正式发布了名为"香山"的开源高性能处RISC-V处理器.前不久我有幸和包老师就这个事情做了一次 ...

最新文章

  1. [团队项目]后续安排 Github
  2. Kafka基本的概念
  3. 【参数】REMOTE_LOGIN_PASSWORDFILE参数三种取值及其行为特性分析
  4. 《WCF技术内幕》翻译31:第2部分_第6章_通道:概述与正确认识通道。
  5. mysql 查询效率测试,mysql innode和myisam引擎查询性能比较测试
  6. Bean context must contain FilterChainProxy
  7. 【Oracle 数据迁移】环境oracle 11gR2,exp无法导出空表的表结构【转载】
  8. treelist 判断父子节点_DOM(4)-节点
  9. 最新小白详细描述在centos7.5上安装python3并使用Nginx+virtualenv+supervisor来部署tornado项目(整理集合结合实际)系列1
  10. 重新学习操作系统的知识
  11. Linux 下 WildFly (原Jboss) 的安装 、配置以及发布
  12. Poj2826 An Easy Problem
  13. Jmeter下载安装详细步骤(2021)
  14. OrCAD/Pspice元件库说明
  15. python输入一个整数_Python中实现输入一个整数的案例
  16. 【计算机体系结构】实验4指令调度与分支延迟
  17. 将APPDATA 迁出C盘
  18. RocketMQ源码解析之消息生产者(获取topic路由信息)
  19. 【无代码爬虫】web scraper 之 安装
  20. 头条号如何做原创,老家底都翻出来了,又要被人骂了

热门文章

  1. 6054. 逃离火灾
  2. 农民伯伯-这是一本我认为每一个关…
  3. 爬取最好大学网数据、分析并可视化操作
  4. Java把Unicode编码转成汉字
  5. 关于分布式操作系统的学习思考
  6. 有趣的微分方程之伯努利方程
  7. 如何巧用print screen进行截图?
  8. python处理csv百万数据-分分快3大小
  9. 数睿数据为代表的企业级无代码智能软件产业迎来新风口
  10. 2022-2028年中国中医营养行业投资潜力分析及发展前景展望报告