Verilog HDL 语言学习
更新时间:2023-06-03 18:13:01 阅读量: 实用文档 文档下载
- verilog推荐度:
- 相关推荐
燕 山 大 学 电 子 实 验 中 心
EDA课程设计-Verilog HDL 程序 设计教师:郑兆兆 2012年12月24日
EDA设计输入方式燕 山 大 学 电 子 实 验 中 心
原理图设计输入
硬件描述语言设计输入(VHDL 、 Verilog HDL)
波形设计输入 底层设计输入 层次设计输入
燕 山 大 学 电 子 实 验 中 心
Verilog HDL是目前应用最为广泛的硬件描述语言之一, 与VHDL各有千秋。1993年,IEEE专门成立IEEE 1364工作 组制定Verilog HDL的标准,在1995年发布了第1个Verilog HDL的标准,即IEEE 1364-1995。随后,IEEE在2002年发布 了经过修订的Verilog HDL新标准,命名为IEEE 1364-2001。 Verilog HDL允许在不同的抽象级别上对数字电路系统进 行描述,这些抽象级别包括 系统级( System Level)、算法 级( Algorithm Level )、寄存器传输级( Register Transfer Level)、门级(Gate Level)和开关级(Switch Level)。 系统级、算法级、寄存器传输级描述都被称为行为描述。
燕 山 大 学 电 子 实 验 中 心
Verilog HDL语言特点:(1) Verilog HDL语法规则与C语言十分相像。 (2) Verilog HDL语法检查不严格。 (3) Verilog HDL自身带有仿真指令。
Verilog HDL基础燕 山 大 学 电 子 实 验 中 心
Verilog HDL设计模块结构一个完整的Verilog HDL设计模块包括端口定义、 I/O声明、变量类型声明和功能描述等4个部分。 module decide (f, a, b, c);//端口定义 input a, b, c ; /* I/O output f ; 声明*/ wire a, b, c ; /*变量 reg f ; 类型声明*/ always @(a or b or c) /*功 begin 能 ……. 描 end 述*/ endmodule
燕 山 大 学 电 子 实 验 中 心
(1)模块端口定义 模块端口定义用来声明电路设计模块的输入输出端口,端 口定义格式如下: module 模块名(端口1,端口2,端口3,…); 例:module decide (f, a, b, c); (2)模块的I/O声明 模块的I/O声明用来声明模块端口定义中各端口数据 流动方向,包括:input(输入),output(输出)和inout(双向)。 I/O声明格式如下: input 端口1,端口2,端口3,…;//声明输入端口 output 端口1,端口2,端口3,…;//声明输出端口 例: input a, b, c ; output f ;
燕 山 大 学 电 子 实 验 中 心
(3)变量类型声明 变量类型声明用来表明设计电路的端口 和内部电路使用的变量的数据类型。变量的 数据类型主要有wire(连线),reg(寄存器), integer(整型),real(实型)和time(时间)
输入/输出端口类型默认时,自动定义 为wire型。
燕 山 大 学 电 子 实 验 中 心
(4)功能描述 功能描述是Verilog HDL程序设计中最主 要的部分,用来描述设计模块的内部结构和模 块端口间的逻辑关系,在电路上相当于器件的 内部电路结构。功能描述可以用assign语句、 元件例化(InstAntiate)、always块语句、initial块 语句等方法
来实现,通常把确定这些设计模块 描述的方法称为建模。
Verilog HDL的词法
燕 山 大 学 电 子 实 验 中 心
(一)空白符和注释 (二)常数 <位宽>’<进制符号><数字> (三)字符串 (四)标识符 区分大小写(字母、数字、下划线) (五)关键词 (六)操作符 (1)算术操作符 求余符号% (2)逻辑操作符 (3)位运算 (4)关系操作符 等 (七)Verilog HDL数据对象
燕 山 大 学 电 子 实 验 中 心
Verilog HDL的语句
(一)赋值语句 (1)门基元赋值语句基本逻辑门关键词 例化门标识符(门输出,门输入1,门输 入2,…, 门输入n); 例如: 具有a,b,c,d输入和y输出与非门的门基元赋值语句 为: nand u1(y,a,b,c,d);
燕 山 大 学 电 子 实 验 中 心
(2)连续赋值语句连续赋值语句的关键词是assign,赋值符号是“=”,连 续赋值语句“=”号两边的变量都应该是wire型变量。 连续赋值语句的格式为 assign 赋值变量=表达式; 例如,具有a,b,c,d输入和y输出与非门的连续赋值 语句为 assign y=~(a&b&c&d);
燕 山 大 学 电 子 实 验 中 心
(3)过程赋值语句过程赋值语句出现在initial和always块语句中,包括阻塞赋 值语句、非阻塞赋值语句。在过程赋值语句中,赋值变量 必须是寄存器型变量(reg、integer、real) 。 i)阻塞赋值语句 阻塞赋值符号是“=”,语句格式为 赋值变量=表达式; 例:y=~(a&b&c&d); 其值在该语句结束即可得到。 ii)非阻塞赋值语句 非阻塞赋值符号是“<=”,语句格式为: 赋值变量<=表达 式; 例: y<=~(a&b&c&d); 其值不像在阻塞赋值语句那样,语 句结束时即刻得到, 而在该块语句结束才可得到。
燕 山 大 学 电 子 实 验 中 心
always @(posedge clock) begin m=3; n=75; n<=m; r=n; //r=75; end
燕 山 大 学 电 子 实 验 中 心
阻塞赋值、非阻塞赋值用法8要点:(1)时序电路建模时,用非阻塞赋值<=。 (2)锁存器电路建模时,用非阻塞赋值<=。 (3)用always块建立组合逻辑模型时,用阻塞赋值=。 (4)在同一个always块中建立时序和组合逻辑电路时,用非 阻塞赋值。 (5)在同一个always块不要既用非阻塞赋值又用阻塞赋值。 (6)不要在一个以上always块中为同一个变量赋值。 (7)用$strobe系统任务来显示用非阻塞赋值的变量值。 (8)在赋值时不要使用#0延迟。
(二)条件语句
燕 山 大 学 电 子 实 验 中 心
条件语句包含if语句和case语句,它们都是顺序语句, 应放在always或initial块中。 (1)if语句 if语句有3种格式 i)if(表达式) begin 语句;end ii) if(表达式) begin 语句;end else begin 语句;end iii) if(表达式) begin 语句;end else if(表达式) ……..
燕 山 大 学 电 子 实 验 中 心
(2) case语句case(表达式) 选择值1:语句1; 选
择值2:语句2; … 选择值n:语句n; default: 语句n+1; endcase/
case语句变体casex、casez
燕 山 大 学 电 子 实 验 中 心
(三)循环语句 循环语句包含for语句,repeat语句,while语句 和forever语句4种。 建议使用for语句。
燕 山 大 学 电 子 实 验 中 心
(四)结构声明语句 结构声明语句包括always,initial,task和function等4种结 构。 (1)always块语法结构 always@(敏感信号表达式)//列出影响块内取值的所有信 号,各信号之间用“or”连接。对于组合电路而言,所 有输入信号都是敏感信号;对于时序电路而言,一般 取时钟信号和复位信号为敏感信号。 begin //过程赋值语句; //if语句,case语句; //tast语句、function语句; end
燕 山 大 学 电 子 实 验 中 心
敏感信号使用注意事项:(1)敏感信号列表中的任何信号发生变化时,都将启动always块 语句,使always块内语句按顺序执行一次。
(2)敏感信号可以为电平敏感信号,也可以是边沿敏感信号。
(3)关键词“posedge”表示上升沿,关键词“negedge”表示下降沿。 (4)在一个敏感信号列表中,不要既有电平信号又有边沿信号。
燕 山 大 学 电 子 实 验 中 心
(五)语句的顺序执行与并行执行 Verilog HDL中由顺序执行语句和并行执行 语句之分。 Verilog HDL的always块中的语句 是顺序语句,按照程序书写的顺序执行。但 always块本身却是并行语句, always块语句中 敏感信号表中列出的任何信号的改变,都将启 动always块语句,使always块语句内相应的顺 序语句被执行一次。 always块、initial块、和assign都是并行的。
燕 山 大 学 电 子 实 验 中 心
Verilog HDL模块设计 (一)门电路设计 (1)assign语句建模 用assign描述一个2输入端与非门的语句格 式为 assign y1=~(a1&&b1); y1为wire型变量
正在阅读:
Verilog HDL 语言学习06-03
防城企沙盐场填土工程施工组织设计03-31
优秀教师演讲稿范文:年轻的翅膀想飞翔05-12
生物工程毕业论文 - 图文01-20
论在微博平台下提高中学生英语自主学习能力03-08
扬州市地方税务局执法问责集体审议办法(试行) - 图文10-31
远亲不如近邻作文500字07-05
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 语言学习
- Verilog
- HDL
- 变电站安全操作规程(新版)
- 浅谈哈尔滨城市配电网改造工作
- 万学海文名师2013第一时间解析考研政治真题:关于“抗日战争的胜利原因”
- 鸿合电子白板使用教程
- L1814综采工作面超前支护变更安全技术措施
- SQL Server 2005 的服务中修复实例
- 利用论坛推广如何引导用户让其积极参与进来
- 08工程量清单计算规则
- 以上的合格供应商
- 《实用药物与临床》杂志被收录为“中国科技论文统计源期刊”
- 简析完美雕塑之《大卫》2600字
- 交银施罗德信用添利债券证券投资基金2011年第3季度报告
- 2016年大气污染防治行业现状及发展趋势分析
- 心理学考试论述题
- 中国煤电市场格局调研与发展战略研究报告(2014-2018)
- 2014年五官科护士分层培训计划
- 0到2岁宝宝营养完美食谱大全
- 大学班级管制细则.doc
- 2014年新版PEP小学三年级下册期中测试卷 new
- 从“苏东坡突围”谈受挫后的心理自我调节