verilog学习(1)基本语法
从今天开始终于要学习verilog语法啦~~学完我就得去整毕业设计了,,虽然verilog一直也学了点,但总觉得没什么系统性。打算用4月份把verilog学完,做点小实践,把毕业设计verilog部分大致过一遍。
一:数据类型,变量和基本运算符号
1:命名规则
大小写敏感,X代表未知状态,Z代表高阻态
2:数字的表达
<size>'<radix><value>,默认十进制
3:模块的新写法
module Andor(
output X,Y;
input A,B,C
)
.......
endmodule
4:数据类型
(1)register变量,存储数据,reg不是真正的flipflop,而是变量。
(2)vector变量,例如:wire[3:0] busA。
(3)integer/real,整型实型变量。
(4)time,my_time=$time ;//存放当前仿真时间
(5)数组array
reg var[-15:16];//32bit的regs,与reg [-15:16] var不同
reg [7:0] mem[0:1023] ;//1024 8-bit regs,看上去是二维的,但真正不是二维数组
mem[10] = 8'b10101010
不可一次取多个元素,如var[2:9]是不可以的,但reg [-15:16] var可以取var[2:9]。原因是数组的索引相当于地址,硬件无法一次读取多个地址。而vector索引相当于取位宽。不支持多维数组,如reg var[1:10] [1:100]是错误的。数组不能是real类型,如real r[1:10]是错误的。
(6) string
reg [8*13:1] string_val; //可存放13个字符,每个字符8位
string_val = "hello,verilog";//假如超过13个字符,则前面字符会被截断,采取低位先存。
5:操作符
(1)逻辑操作符 x&&0 = 0
(2)位操作符 ^(异或) ~^(同或)
(3)一目操作符
a = 4'b1001;
c = |a = 1|0|0|1 = 1
(4)移位操作符
(5)拼接操作符{}
但必须指定size,b = 3'b010; catz = {b,1};这是错误的,1必须指定size
(6)等号操作符
==/!==/===/!==
===/!==包括对xz的判断,若用==/!=对含有xz的进行判断,则返回x。
6:算术运算符
负数:reg [15:0] regA; regA = -4'd12;//存储的是2的16次方-12。
integer intA; intA = -12/3; //存储的是-4
二:赋值语句
(1)连续赋值语句
assign #del <id> = <expr>;//assign与wire配对
放在module里面,不能在过程块里(always,initial);多个assign语句是并发的,执行顺序不相关;
(2)门级建模
这些例化在module里,不能在procedure里面。
(3)行为级模块-过程块
过程块里的code是顺序执行的,begin..end;
包括initial与always块,initial只在仿真为0时执行一遍,不可综合,不可构建电路;always块在仿真为0时执行,执行多次,可综合,可构建电路。
(4)块语句block
sequential:begin...end 顺序执行
parallel: fork...join 并行执行,不可综合,不可构建电路。
begin...end与fork...join可相互嵌套。
(5)always块
assign不可放在always语句里,always左侧变量必须是reg型。
always @(敏感信号) ,敏感信号可以是电平信号也可以是触发沿信号。
(6)wait(expr)
wait不可综合,用于仿真。
三:条件语句循环语句
(1)if语句,else语句要充分考虑多个情况,不然会形成latch。可综合
(2)case,可综合
(3)for循环,是否可综合取决于变量的循环是不是固定的
(4)while() begin ...end 不可综合
(5)repeat(times) stmt;不可综合
(6)forever 不可综合
forever #10 clk = ~clk; //对时钟建模,生成clock,always也可产生时钟,但不专业。我们推荐用forever产生时钟。
转载于:https://www.cnblogs.com/xh13dream/p/8807188.html
verilog学习(1)基本语法相关推荐
- (13)Verilog程序结构-基本语法(一)(第3天)
(13)Verilog程序结构-基本语法(一)(第3天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)Verilog程序结构-基本语法(一)(第3天) 5)技术 ...
- FPGA笔记之verilog语言(基础语法篇)
文章目录 FPGA笔记之verilog语言(基础语法篇) 1. verilog 的基础结构 1.1 verilog设计的基本单元--module 1.2 module的使用 1.3 I/O的说明 1. ...
- Verilog学习之路(4)— Verilog HDL的程序设计语句
Verilog HDL的程序设计语句 一.连续赋值语句 连续赋值语句通常用来描述组合逻辑电路,连续赋值的目标类型主要是标量线网和向量线网两种,标量线网如"wire a,b;",向量 ...
- verilog学习:一个简单的入门verilog例子
前言 之前的文章<如何学习verilog,如何快速入门?>中提到了verilog学习,只想传输一个观点:刚开始学习的时候,建议直接通过视频学习,当您有收获时,再去查阅书籍,把它们当成工具书 ...
- Verilog初级教程(2)Verilog HDL的初级语法
文章目录 前言 正文 注释 空格 操作符 数字格式 字符串 标识符 关键字 verilog修订 写在最后 前言 学习Verilog和学习任何一门编程语言一样,都需要从语法开始,不会语法去学习设计是几乎 ...
- verilog学习|《Verilog数字系统设计教程》夏宇闻 第三版思考题答案(第三章)
<Verilog数字系统设计教程>夏宇闻 第三版思考题 答案合集 : Verilog学习系列 第三部分 1.模块由几个部分组成? 由描述接口和描述逻辑功能两部分组成. 2.端口分为几种 ...
- 我的 System Verilog 学习记录(1)
引言 技多不压身,准备开始学一些 System Verilog 的东西,充实一下自己,这个专栏的博客就记录学习.找资源的一个过程,希望可以给后来者一些借鉴吧,IC找工作的都加把油! 本文是准备先简单介 ...
- Verilog学习脚印4-状态机(串口)
Verilog学习脚印4-状态机(串口) 附:verilog语法笔记(持续更新ing) 目录 bash命令 串口协议简介(来自B站-北交李金城老师的PPT,侵删) 实例1:串口数据接收 电路原理(来自 ...
- Verilog学习脚印2-时序逻辑
Verilog学习脚印2-时序逻辑 附:verilog语法笔记(持续更新ing) 目录 触发器基础 bash命令 实例1:计数器 电路原理(来自B站-北交李金城老师的PPT,侵删) 代码实现与验证 实 ...
- Verilog学习脚印3-简单状态机(三角波)
Verilog学习脚印3-简单状态机(三角波) 附:verilog语法笔记(持续更新ing) 目录 bash命令 实例1:三角波发生器 电路原理(来自B站-北交李金城老师的PPT,侵删) 代码实现与验 ...
最新文章
- 将简历挂到云服务器网站上记
- LeetCode 21 ——合并两个有序链表
- springcloud、consul和Springboot的版本
- “换标”Intel的穷则思变
- 【LeetCode笔记】162. 寻找峰值(Java、二分、偏数学)
- 如何对待基金评审负面意见?
- Page.RegisterClientScriptBlock和Page.RegisterStartupScript有何区别
- 无心剑随感《爱心教育》
- java添加组件不显示不出来_java – jScrollPane无法添加组件
- isset,empty,is_null小知识
- centos6.5系统不支持 mysql_centos6.5系统下面MySql数据库的安装
- 将input file的选择的文件清空的两种解决方案
- 如何在Mac上恢复已删除或丢失的分区
- windows捕获串口数据_如何下载和安装用于Windows数据包捕获的Npcap库?
- 制作简易的幸运转盘抽奖
- C# 阿里云 短信api接口
- 计算机视觉 相机标定
- 字节跳动:雀魂启动!(Python语言实现)
- 又get到一个新markdown编辑器
- linux中ls命令查看文件大小与时间
热门文章
- java spring事务管理系统_Java Spring-事务管理概述
- CANopen | 对象字典OD 04 - 创建对象字典的变量(映射变量)
- wsl2无法使用systemctl_Win 10 更新,Linux 内核的 WSL 2 开始上线
- ThinkPHP6项目基操(18.实战部分 表单令牌Token 防CSRF)
- 软考系统架构师笔记-最后知识点总结(二)
- Qt工作笔记-使用setFilterKeyColumn实现model的单行过滤
- Qt工作笔记-使用QFileSystemWatcher监控文件是否改变
- java题-如何递归遍历一个文件夹下的所有文件
- WEB安全基础-PHP相关
- 的写法_朋友圈文案标题的写法