最新要闻
- 博物馆的作用和意义是什么 博物馆的作用和意义是什么
- 重磅!OpenAI曝光GPT-4这一新功能:一天可以完成六个月的工作
- 高温下的环保人 | “蒸”战高温, 南京溧水生态环保人冲在环境监管、执法一线
- 凌晨2点,代驾李师傅狂奔百米跳入江中
- 【图解】国家统计局:7月天然气生产同比增长7.6%
- 瑞讯银行:将加大中国市场投入和开拓
- 《航海王热血航线》2023幸运连结活动
- 我国绍兴哪些村庄不拆迁
- 浪费人才?上海交大教授谈大学生送外卖、快递:学的专业不是很实用
- 价格低了不接受 SSD一哥金士顿带头抵制降价:挥别白菜价时代
- 老公坐牢五年我一直在婆家被受欺负,现在老公出来常因为他家人我们之间老发生矛盾
- 新生村民委员会(关于新生村民委员会的简介)
- 蓝色动物学(关于蓝色动物学简述)
- 维尔利(300190)股东常州德泽实业投资有限公司质押2063万股,占总股本2.64%
- 茅忠群的千亿梦幻:方太厨电2022年只卖162亿
- 天津调整防洪应急响应
手机
金正恩现场指导,朝鲜人民军出动!
IXPE泡沫塑料行业股票有哪些?(2023/8/17)
- 金正恩现场指导,朝鲜人民军出动!
- IXPE泡沫塑料行业股票有哪些?(2023/8/17)
- 有哪些植物可以祛斑?
- 家长花3万元买公立幼儿园名额?江西南昌红谷滩区:不属实
- 入华30年,除了iPhone,苹果还带来了什么?
- 鼓励提取公积金作首付,多地明确!
家电
【Verilog】一文带你了解verilog基础语法
Verilog很简单,always..if..else走天下。
——鲁迅
前言
虽说verilog很简单,简单到always..if..else走天下。
(资料图片)
但是也会有不知道怎么写代码的尴尬场景。代码也写了不少了,回过头来,再来继续学习Verilog,整理再出发!
大概思路:基础语法——高级语法——Verilog题目——典型电路——常用模块——项目中可移植的代码模块。
一、Verilog HDL简介
HDL:Hardware Description Language 硬件描述语言。
VHDL or Verilog ?
毫无疑问,新手选Verilog就对了,原因一是对新手友好,有过C语言底子的很快就能上手;原因二是现目前公司基本使用Verilog。
鉴于Verilog 1995标准有些地方比较拉跨,目前基本采用2001标准。
学习Verilog的基本都是FPGA/IC前端预备军,其他就不再赘述了。
二、Verilog模型
Verilog模型可以是实际电路不同级别的抽象。这些抽象的级别和它们对应的模型类型共有以下五种:
1) 系统级(system)
2) 算法级(algorithmic)
3) RTL级(RegisterTransferLevel):
4) 门级(gate-level):
5) 开关级(switch-level)
目前,用门级和RTL级抽象描述的Verilog HDL模块可以用综合器转换成标准的逻辑网表;用算法级描述的Verilog HDL模块,只有部分综合器能把它转换成标准的逻辑网表;而用系统级描述的模块,目前尚未有综合器能把它转换成标准的逻辑网表,往往只用于系统仿真。
其实不用纠结这么多,我们设计基本是行为RTL级,初学时也不必纠结什么电路,只要功能运行正常就OK。大佬都说“看到代码背后的电路”,初期真是强人锁男。待到一定程度后,再来研究代码优化,电路优化。
Verilog模块
Verilog的基本设计单元是“模块”。一个模块是由两部分组成的,一部分描述接口,另一部分描述逻辑功能,即定义输入是如何影响输出的。
下面举例说明:
基础-1可以看到模块由关键字module....endmodule 确定。
module 模块名(接口信号);
//信号声明
//功能描述
endmodule
要求: 1. 模块名具有意义;2. 一个.v文件只有一个模块。
Verilog数据类型
虽然平时我们好像就用到reg/wire ,但其实verilog数据类型有多达19种。
了解常用的4种就好:reg、wire、parameter、integer。
4.1常量
- 数字 : <位宽><类型><数字> 如: 8’b1100_0010
- X和Z值 : X:不定值;Z:高阻 (同也可用?表示)
- 负数 : 如:-8’d5 ,减号在最前面。
4.2参数型
Verilog模块中可使用parameter来定义一个标识符来代表一个常量。
parameter SIZE = 15;
这里不得不提一下localparam 和 define ,它们都是定义一个标识符来代表一个常量。区别如下:
作用域 | 常用方式 | 语法 | |
define宏定义 | 整个工程;可跨文件、跨模块 | 全局定义,宏定义单独写一个文件.v | `include “para.v”`define SIZE 15 |
parameter | parameter声明所在的模块内部 | 跨模块传递参数 | parameter SIZE = 15; |
localparam | 模块内部 | 内部状态机定义 | localparam SIZE = 15; |
4.3变量
4.3.1 wire型
①线网型,输入输出信号默认为wire型,同时输入信号只能是wire型。
②模块间端口连接,信号都定义为wire型,即进行电路连线。
③wire信号定义: wire [7:0] a;
④wire信号赋值:只能使用assign进行连续赋值(阻塞赋值 “=”):
assign a = b & c;
4.3.2 reg型
①寄存器是数据储存单元的抽象。寄存器数据类型的关键字是reg。但reg型不一定综合成寄存器,具体还要看设计电路。
②always块中的变量必须定义为reg型,使用非阻塞赋值“<=”。
③reg型数据定义: reg [7:0] a;
④reg型数据可以赋正值,也可以赋负值。但当一个reg型数据是一个表达式中的操作数时,它的值被当作是无符号值,即正值。
⑤reg型数据的缺省值为不定值X。
4.3.3 memory型
Verilog HDL通过对reg型变量建立数组来对存储器建模,可以描述RAM型存储器,ROM存储器和reg文件。数组中的每一个单元通过一个数组索引进行寻址。
verilog2001支持多维数组。
memory型数据是通过扩展reg型数据的地址范围来生成的。其格式如下:
reg [n-1:0] 存储器名[m-1:0];
如:reg [7:0] mem_a[255:0];
这个例子定义了一个名为mema的存储器,该存储器有256个8位的存储器。该存储器的地址范围是0到255。注意:对存储器进行地址索引的表达式必须是常数表达式。
这里不得不提一下下面这两种定义的区别:
reg [n-1:0] rega; //一个n位的寄存器
reg mem_a [n-1:0]; //一个由n个1位寄存器构成的存储器组
一个n位的寄存器可以在一条赋值语句里进行赋值,而一个完整的存储器则不行。见下例:
rega =0; //合法赋值语句
mem_a =0; //非法赋值语句
运算符
Verilog HDL语言的运算符范围很广,其运算符按其功能可分为以下几类:
1) 算术运算符(+,-,×,/,%)
2) 赋值运算符(=,<=)
3) 关系运算符(>,<,>=,<=)
4) 逻辑运算符(&&,||,!)
5) 条件运算符(?:)
6) 位运算符(~,|,^,&,^~)
7) 移位运算符(<<,>>)
8) 拼接运算符({ })
9) 其它
在Verilog HDL语言中运算符所带的操作数是不同的,按其所带操作数的个数运算符可分为三种:
1) 单目运算符(unary operator):可以带一个操作数,操作数放在运算符的右边。
2) 二目运算符(binary operator):可以带二个操作数,操作数放在运算符的两边。
3) 三目运算符(ternary operator):可以带三个操作,这三个操作数用三目运算符分隔开。
见下例:
clock = ~clock; // ~是一个单目取反运算符, clock是操作数。c = a | b; // 是一个二目按位或运算符, a 和 b是操作数。r = s ? t : u; // ?: 是一个三目条件运算符, s,t,u是操作数。
优先级:单独运算符优先级最高;不需要刻意去背,书写时使用()便于阅读。
赋值语句和块语句
6.1赋值语句
在Verilog HDL语言中,信号有两种赋值方式:
(1)非阻塞(Non_Blocking)赋值方式( 如 b <= a; )
1) 块结束后才完成赋值操作。
2) b的值并不是立刻就改变的。
3) 这是一种比较常用的赋值方法。(特别在编写可综合模块时)
(2)阻塞(Blocking)赋值方式( 如 b = a; )
1) 赋值语句执行完后,块才结束。
2) b的值在赋值语句执行完后立刻就改变的。
3) 可能会产生意想不到的结果。
设计时,遵循以下规则:
- always块中使用非阻塞赋值
- assign使用阻塞赋值
6.2块语句
顺序块:(顺序执行)
begin语句1;语句2;...end
并行块:(同时执行)
fork语句1;语句2;...end
注:begin/fork后可以加 “:块名”
条件语句和循环语句
基本同C语言,较容易理解,不多介绍
条件语句
if..else (可嵌套)
if(条件)语句1;else语句2;
case
case(变量)情况1: 语句1;情况2: 语句2;endcase
循环语句
integer i;for(i=0;i<10;i=i+1)a[i]<=i;
八、结构说明语句
Verilog语言中的任何过程模块都从属于以下四种结构的说明语句。
1) initial说明语句
2) always说明语句
3) task说明语句
4) function说明语句
这里只介绍always:
always语句在仿真过程中是不断重复执行的。
其声明格式如下:
always <时序控制> <语句>
always 的时间控制可以是沿触发也可以是电平触发的,可以单个信号也可以多个信号,中间需要用关键字 or 连接。
always @(posedge clock or posedge reset) //由两个沿触发的时序逻辑
begin
……
end
//组合逻辑直接使用*代替敏感点平,避免遗漏
always @(*) //由多个电平触发的组合逻辑
begin
……
end
后记
OK,Verilog基本语法掌握这些就能写一些简单电路了。如果有C语言的基础,verilog学起来直接轻松+愉快。其他高级语法,其实也不高级,如:FSM、函数和任务、系统函数、并行块等,后续补充。
咱们下期见。
参考资料:《夏宇闻-数字逻辑设计》
关键词:
【Verilog】一文带你了解verilog基础语法
网友:我来劝一劝那些想买特斯拉Model Y的朋友,这车千万不能买
各地积极探索激发文化活力 打好城市“特色牌”
有不少芯片厂,正在靠做珠宝赚钱
安徽监狱“无缝对接”助刑释人员平安回归
眼镜价格凶猛: 单副可达上千元 成本仅为1/10
机械键盘突然没信号怎么办_机械键盘突然失灵了不知道按到什么了
去日本旅游需要什么条件 去日本旅游
葡萄酒佐餐艺术:90道美酒美食搭配实例(关于葡萄酒佐餐艺术:90道美酒美食搭配实例简述)
博物馆的作用和意义是什么 博物馆的作用和意义是什么
“第二成长曲线”加快释放新产能 南山智尚上半年净利同比增长10.82%
蓬州东社区(关于蓬州东社区简述)
金正恩现场指导,朝鲜人民军出动!
惠誉:高收益债券违约率将飙升 医疗保健领域最令人担忧
蓝宝石HD3870 Toxic毒药(关于蓝宝石HD3870 Toxic毒药简述)
重磅!OpenAI曝光GPT-4这一新功能:一天可以完成六个月的工作
解码瑞幸咖啡逆势增长:上半场做加法,下半场融合
《黑色沙漠手游》公测4月26日开启 IOS及安卓端预约现已上线
华泰宏观:暑期出行需求回暖,投资需求偏弱
沃神:恩比德也想离开76人!哈登1换2交易,太便宜热火了吧
铁岭新城上半年营收1064.84万元 同比增长9.64%
江西:适龄女生HPV疫苗免费接种人数已破11万
旅客在车站突发疾病倒地抽搐!00后民警及时救助
西安市长安区秦岭山区所有峪口实施封控
高温下的环保人 | “蒸”战高温, 南京溧水生态环保人冲在环境监管、执法一线
凌晨2点,代驾李师傅狂奔百米跳入江中
四方交易,再见杜兰特!火箭大赚,哈登辅佐双探花,太阳一箭双雕
“空中菜园”无土栽培秀奇观
警惕不良广告背后的“轻农”观念
NBA季中锦标赛具体赛程公布!揭幕战雄鹿vs尼克斯
太low了是什么意思中文 太low了是什么意思
强制平仓会有什么后果 强制平仓
三顺一丁是三皮全部顺砖与一皮全部丁砖间隔砌成 三顺一丁
空白符号怎么打出来手机 空白符号
IXPE泡沫塑料行业股票有哪些?(2023/8/17)
有哪些植物可以祛斑?
港股异动 | 东方甄选(01797)涨超3% 旗下直播间账号数量增至8个 APP破圈意义重大
开创中国皮卡新成就 长城炮品牌第50万台整车下线
大英博物馆藏品被盗或为“内贼” 一名员工被解雇
志在千里的上一句是什么
迪马济奥:由于扎尼奥洛的伤病风险,买断条款改为完全选择性
【图解】国家统计局:7月天然气生产同比增长7.6%
五一高速公路免费截止日期 2022年五一放假高速免费通行时间)
没有他我们会死mv_没有他我们会死
江西省财通供应链金融集团获AA+主体信用“双评级”
家长花3万元买公立幼儿园名额?江西南昌红谷滩区:不属实
*ST海投被深交所决定终止上市
国美零售预计上半年销售收入同比下滑超过90%
海航科技:上半年净利2.87亿元 同比增72.68%
431分捡漏上清华,专业曝光更让人羡慕了!
瑞讯银行:将加大中国市场投入和开拓
艾瑞咨询&天下秀:《2023年中国红人新经济行业发展报告》(PPT)
银行行长表示:若存款金额达到“这个数”,可以和银行谈利率
《原神》旧世遗音世界任务通关方法
入华30年,除了iPhone,苹果还带来了什么?
哔哩哔哩:广告拯救小破站?没那么容易
《魔兽》手游公测揭秘:暴雪把天赋都点在氪金上了?
《航海王热血航线》2023幸运连结活动
反诈宣传进走项目,携手共筑“防骗墙”
七夕放“价”PS5双手柄套装千元折扣限时享
昆明出台推动青年就业创业“二十一条”措施
要拆迁的楼房怎么评估是正确的?
我国绍兴哪些村庄不拆迁
DNF战灵天舞墨魂装扮怎么获得(DNF战灵天舞墨魂装扮获得方法)
医药反腐风暴下 SPD概念持续升温 这只股录得7天6板
暑运中的坚守 护航旅客平安出行
中国海油上半年油气收入1517亿元 绿色发展成绩亮眼
中百集团:截止到7月末,公司股东户数为39778户
鼓励提取公积金作首付,多地明确!
腾讯控股:企业服务重回双位数增长 正以MaaS为合作伙伴提供模型库
科普|母乳妈妈常见疑惑十二问
大英博物馆重大文物失窃 工作人员已解职
昆山锦溪:构筑“红色”堤坝 守护当“夏”安全
以北京中关村西区为例,究竟什么样的区域适合“区域集中供冷”?
国产游戏《夜不收:荡寇风云》已上线:支持双平台
宁夏现代物流与供应链产教融合共同体成立
广州番禺出台实施方案 高质量推进生态文明建设
点燃“夜经济”消费模式!“月昇光明”集市启动仪式举行
车评头条:广汽丰田凯美瑞2.5一个月小长测启动!
降3万都不好卖吗?天籁7月销量5563台,环比大跌49.98%,真麻了
美国同意丹麦和荷兰向乌克兰提供F-16战机
最新通报
上海海港1比1梅州客家 奥斯卡海港生涯200场
涉嫌严重违纪违法 云南省1名干部被查
宝安区举办年内第二场市级一类职业技能竞赛
他们来了!22名2023年度“湖南省教书育人楷模”候选人出炉
商务部将研究中止或部分中止ECFA项下给予台湾产品的关税优惠 国台办回应
绿城6.95亿竞得浙江丽水一宅地 须按“定品质”要求进行开发建设
暑期连云港海岛游、夜经济“顶流”出圈
《封神第二部》剧情曝光,是尊重女性还是极致女权,又惹来争议
阿迪达斯业绩回暖,依旧挡不住被国产替代
美凯龙净利降逾83%车建兴让位董事长,原股东及一致行动人拟套现6.3亿还债
浪费人才?上海交大教授谈大学生送外卖、快递:学的专业不是很实用
价格低了不接受 SSD一哥金士顿带头抵制降价:挥别白菜价时代
一连5天,解放军在南海划禁区,谁敢再闯仁爱礁,要考虑考虑清楚
特斯拉降价1.4万,买单的竟是中国品牌!
美国无家可归者增速创纪录 面临生存威胁
体育四项全能是哪四项呢(体育四项全能是哪四项)
太极宗师片尾歌曲歌词(太极宗师插曲全部)
浦东近年来最大国土旧改项目提前清盘!高桥镇进入城市更新加速开发新阶段