【Verilog】一、Verilog的always使用
【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使用相关推荐
- (69)FPGA模块调用(system Verilog调用Verilog)
(69)FPGA模块调用(system Verilog调用Verilog) 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)FPGA模块调用(system Verilog ...
- (66)FPGA模块调用(Verilog调用Verilog)
(66)FPGA模块调用(Verilog调用Verilog) 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)FPGA模块调用(Verilog调用Verilog) 5)结 ...
- 再说System Verilog 与 Verilog 的关系
System Verilog 与 Verilog 的关系 标准 当前的System Verilog标准是由IEEE(国际电子电气工程师协会)和Accellera(基于工业的标准协会)两个国际组织制定的 ...
- linux verilog 编译,Verilog 编译指令简介
导读 以反引号 ` 开始的某些标识符是 Verilog 系统编译指令.编译指令为 Verilog 代码的撰写.编译.调试等提供了极大的便利. 下面介绍下完整的 8 种编译指令,其中前 4 种使用频率较 ...
- verilog HDLBits Verilog语法
逐位逻辑运算符(&,|)和逻辑运算符(&&,||)之间的差别: 逐位逻辑运算符:对于 N 比特输入向量之间的逻辑比较,会在 N 比特上逐位进行,并产生一个 N 比特长的运算结果 ...
- 【Verilog】Verilog的八个经典入门例题
Verilog的八个经典入门例题 文章目录 Verilog的八个经典入门例题 前言 一.7人表决器设计 二.8位的ALU设计 三.JK触发器的设计 四.环形计数器 五.二进制整数除法器设计 六.排序任 ...
- verilog/system verilog语法
1,Verilog有变量类型和线网类型.变量类型比如reg,integer和time.线网类型比如wire,wor,wand等.system verilog使用了Verilog的变量类型:reg,in ...
- 【Verilog】——Verilog简介
目录 1.简介 2.什么是HDL以及HDL的功能 3.Verilog和C语言的比较 4.Verilog的用途 5.数字系统的抽象层次 1.系统级 2.算法级 3.RTL级(寄存器变换级) 6.数字系统 ...
- 【Verilog】Verilog定义二维数组(2D Array)
目录 定义的种类 第一种 赋值方法 第二种 赋值方法 第三种 赋值方法 定义的种类 首先看几组定义类型 第一种 定义一个位宽为8的 data1(reg) 和 data2(wire) 的变量. reg ...
- 芯片开发语言:Verilog 在左,Chisel 在右
来源 | 老石谈芯 在最近召开的RISC-V中国峰会上,中科院计算所的包云岗研究员团队正式发布了名为"香山"的开源高性能处RISC-V处理器.前不久我有幸和包老师就这个事情做了一次 ...
最新文章
- [团队项目]后续安排 Github
- Kafka基本的概念
- 【参数】REMOTE_LOGIN_PASSWORDFILE参数三种取值及其行为特性分析
- 《WCF技术内幕》翻译31:第2部分_第6章_通道:概述与正确认识通道。
- mysql 查询效率测试,mysql innode和myisam引擎查询性能比较测试
- Bean context must contain FilterChainProxy
- 【Oracle 数据迁移】环境oracle 11gR2,exp无法导出空表的表结构【转载】
- treelist 判断父子节点_DOM(4)-节点
- 最新小白详细描述在centos7.5上安装python3并使用Nginx+virtualenv+supervisor来部署tornado项目(整理集合结合实际)系列1
- 重新学习操作系统的知识
- Linux 下 WildFly (原Jboss) 的安装 、配置以及发布
- Poj2826 An Easy Problem
- Jmeter下载安装详细步骤(2021)
- OrCAD/Pspice元件库说明
- python输入一个整数_Python中实现输入一个整数的案例
- 【计算机体系结构】实验4指令调度与分支延迟
- 将APPDATA 迁出C盘
- RocketMQ源码解析之消息生产者(获取topic路由信息)
- 【无代码爬虫】web scraper 之 安装
- 头条号如何做原创,老家底都翻出来了,又要被人骂了