




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
硬件描述语言VerilogHDL基础 1Verilog语言的基本语法规则2变量的数据类型3Verilog程序的基本结构4逻辑功能的仿真与测试 硬件描述语言HDL HardwareDescriptionLanguag 类似于高级程序设计语言 C语言 它是一种以文本形式来描述数字系统硬件的结构和行为的语言 用它可以表示逻辑电路图 逻辑表达式 复杂数字逻辑系统所的逻辑功能 HDL是高层次自动化设计的起点和基础 硬件描述语言VerilogHDL基础 计算机对HDL的处理 逻辑综合是指从HDL描述的数字逻辑电路模型中导出电路基本元件列表以及元件之间的连接关系 常称为门级网表 的过程 类似对高级程序语言设计进行编译产生目标代码的过程 产生门级元件及其连接关系的数据库 根据这个数据库可以制作出集成电路或印刷电路板PCB 逻辑仿真是指用计算机仿真软件对数字逻辑电路的结构和行为进行预测 仿真器对HDL描述进行解释 以文本形式或时序波形图形式给出电路的输出 在仿真期间如发现设计中存在错误 就再要对HDL描述进行及时的修改 1Verilog语言的基本语法规则 为对数字电路进行描述 常称为建模 Verilog语言规定了一套完整的语法结构 1 间隔符 Verilog的间隔符主要起分隔文本的作用 可以使文本错落有致 便于阅读与修改 间隔符包括空格符 b TAB键 t 换行符 n 及换页符 2 注释符 注释只是为了改善程序的可读性 在编译时不起作用 多行注释符 用于写多行注释 单行注释符 以 开始到行尾结束为注释文字 标识符 给对象 如模块名 电路的输入与输出端口 变量等 取名所用的字符串 由英文字母 数字 符和下划线组成 并且以英文字母或下划线开始 如 clk counter8 net bus A 关键词 是Verilog语言本身规定的特殊字符串 用来定义语言的结构 例如 module endmodule input output wire reg and等都是关键词 关键词都是小写 关键词不能作为标识符使用 3 标识符和关键词 为了表示数字逻辑电路的逻辑状态 Verilog语言规定了4种基本的逻辑值 4 逻辑值集合 5 常量及其表示 实数型常量 常量 整数型 例如 3 b101 5 o37 8 he3 8 b1001 0011 Verilog允许用参数定义语句定义一个标识符来代表一个常量 称为符号常量 定义的格式为 parameter参数名1 常量表达式1 参数名2 常量表达式2 如parameterBIT 1 BYTE 8 PI 3 14 6 字符串 字符串是双撇号内的字符序列 2变量的数据类型 1 线网类型 是指输出始终根据输入的变化而更新其值的变量 它一般指的是硬件电路中的各种物理连接 例 wireL 将上述电路的输出信号L声明为网络型变量wire 7 0 databus 声明一个8 bit宽的网络型总线变量 寄存器型变量对应的是具有状态保持作用的电等路元件 如触发器寄存器 寄存器型变量只能在initial或always内部被赋值 2 寄存器型 4种寄存器类型的变量 例 regclock 定义一个1位寄存器变量reg 3 0 counter 定义一个4位寄存器变量 2 每个模块先要进行端口的定义 并说明输入 input 和输出 output 然后对模块功能进行描述 3Verilog程序的基本结构 Verilog使用大约100个预定义的关键词定义该语言的结构 1 VerilogHDL程序由模块构成 每个模块的内容都是嵌在关键词module和endmodule两个语句之间 每个模块实现特定的功能 3 除了endmodule语句外 每个语句后必须有分号 4 可以用 和 对VerilogHDL程序的任何部分做注释 模块定义的一般语法结构如下 模块名 数据类型说明 例用结构描述方式建立门电路Verilog模型 Gate leveldescriptionofsimplecircuitmodulemux2to1 a b sel out inputa b sel 定义输入信号outputout 定义输出信号wireselnot a1 b1 定义内部节点信号数据类型 下面对电路的逻辑功能进行描述notU1 selnot sel andU2 a1 a selnot andU3 b1 b sel orU4 out a1 b1 endmodule 4逻辑功能的仿真与测试 逻辑电路的设计块完成后 就要测试这个设计块描述的逻辑功能是否正确 为此必须在输入端口加入测试信号 而从其输出端口检测其结果是否正确 这一过程常称为搭建测试平台 根据仿真软件的不同 搭建测试平台的方法也不同 图2 3 3例2 3 1的仿真输出波形 用VerilogHDL描述组合逻辑电路 用VerilogHDL描述组合逻辑电路 用VerilogHDL描述组合逻辑电路有三种不同抽象级别 门级描述数据流描述行为级描述VerilogHDL描述的电路就是该电路的VerilogHDL模型 基本门级元件模型 多输入门 多输出门 三态门 1 组合逻辑电路的门级建模 门级建模 将逻辑电路图用HDL规定的文本语言表示出来 Verilog基本门级元件 1 多输入门 只允许有一个输出 但可以有多个输入 andA1 out in1 in2 in3 X 不确定状态 Z 高阻态 2 多输出门 允许有多个输出 但只有一个输入 notN1 out1 out2 in bufB1 out1 out2 in 3 三态门 有一个输出 一个数据输入和一个输入控制 如果输入控制信号无效 则三态门的输出为高阻态z 4 设计举例 Gate leveldescriptionofa2 to 4 linedecodermodule 2to4decoder A1 A0 E Y inputA B E output 3 0 Y wireA1not A0not Enot notn1 A1not A1 n2 A0not A0 n3 Enot E nandn4 Y 0 A1not A0not Enot n5 Y 1 A1not A0 Enot n6 Y 2 A1 A0not Enot n7 Y 3 A1 A0 Enot endmodule 试用Verilog语言的门级元件描述2线 4线译码器 例2用Verilog的门级元件进行描述由三态门构成的2选1数据选择器 Gate leveldescriptionofa2 to 1 linemultiplexermodule 2to1muxtri A B SEL L inputA B SELoutputL triL 也是线网型变量 由多个门驱动bufif1 L B SEL bufif0 L A SEL endmodule 5 分层次的电路设计方法简介 4位全加器的层次结构框图 分层次的电路设计 在电路设计中 将两个或多个模块组合起来描述电路逻辑功能的设计方法 设计方法 自顶向下和自底向上两种常用的设计方法 modulehalfadder S C A B inputA B outputS C Instantiateprimitivegatesxor S A B and C A B endmodule Gate levelhierarchicaldescriptionof4 bitadder Descriptionofhalfadder Descriptionof1 bitfulladdermodulefulladder S CO A B CI inputA B CI outputS CO wireS1 D1 D2 内部节点信号 InstantiatethehalfadderhalfadderHA1 S1 D1 A B halfadderHA2 S D2 S1 CI org1 CO D2 D1 endmodule Descriptionof4 bitfulladdermodule 4bit adder S C3 A B C 1 input 3 0 A B inputC 1 output 3 0 S outputC3 wireC0 C1 C2 内部进位信号 InstantiatethefulladderfulladderFA0 S 0 C0 A 0 B 0 C 1 FA1 S 1 C1 A 1 B 1 C0 FA2 S 2 C2 A 2 B 2 C1 FA3 S 3 C3 A 3 B 3 C2 endmodule 数据流建模能在较高的抽象级别描述电路的逻辑功能 通过逻辑综合软件 能够自动地将数据流描述转换成为门级电路 2组合逻辑电路的数据流建模 VerilogHDL的运算符 位运算符与缩位运算的比较 A 4 b1010 B 4 b1111 对同一个操作数的重复拼接还可以双重大括号构成的运算符 例如 4 A 4 b1111 2 A 2 B C 8 b11101000 作用是将两个或多个信号的某些位拼接起来成为一个新的操作数 进行运算操作 位拼接运算符 设A 1 b1 B 2 b10 C 2 b00 则 B C 4 b1000 A B 1 C 0 3 b110 A B C 3 b101 8 b11000101 一般用法 condition expr expr1 expr2 条件运算符 是三目运算符 运算时根据条件表达式的值选择表达式 首先计算第一个操作数condition expr的值 如果结果为逻辑1 则选择第二个操作数expr1的值作为结果返回 结果为逻辑0 选择第三个操作数expr2的值作为结果返回 2 数据流建模举例 连续赋值语句的执行过程是 只要逻辑表达式右边变量的逻辑值发生变化 则等式右边表达式的值会立即被计算出来并赋给左边的变量 注意 在assign语句中 左边变量的数据类型必须是wire型 数据流建模使用的基本语句是连续赋值语句assign 该语句用于对wire型变量进行赋值 它由关键词assign开始 后面跟着由操作数和运算符组成的逻辑表达式 2选1数据选择器的连续赋值描述是 wireA B SEL L 声明4个连线型变量assignL A 连续赋值 Dataflowdescriptionofa2 to 4 linedecoder moduledecoder df A1 A0 E Y inputA1 A0 E output 3 0 Y assignY 0 A1endmodule Dataflowdescriptionof2 to 1 linemultiplexermodulemux2x1 df A B SEL L inputA B SEL outputL assignL SEL A B endmodule 用条件运算符描述了一个2选1的数据选择器 在连续赋值语句中 如果SEL 1 则输出L A 否则L B 3组合逻辑电路的行为级建模 行为级建模就是描述数字逻辑电路的功能和算法 一般使用always结构 后面跟着一系列过程赋值语句 给reg类型的变量赋值 if condition expr1 true statement1 elseif condition expr2 true statement2 elseif condition expr3 true statement3 elsedefault statement 1 条件语句 if语句 条件语句就是根据判断条件是否成立 确定下一步的运算 if condition expr true statement if condition expr true statement elsefale statement Verilog语言中有3种形式的if语句 if后面的条件表达式一般为逻辑表达式或关系表达式 执行if语句时 首先计算表达式的值 若结果为0 x或z 按 假 处理 若结果为1 按 真 处理 并执行相应的语句 是一种多分支条件选择语句 一般形式如下 case case expr item expr1 statement1 item expr2 statement2 default default statement default语句可以省略 2 多路分支语句 case语句 Behavioraldescriptionof2 to 1 linemultiplexermodulemux2to1 bh A B SEL L inputA B SEL outputL regL defineregistervariablealways SELorA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度云端智能翻译服务合作协议范本
- 2025年专业市场场地租赁与特色品牌招商合作框架协议
- 2025年二手车辆融资担保与信用风险评价合作协议
- 2025年生态蔬菜冷链物流配送与采购合作协议
- 2025年KTV广告资源整合与独家经营授权合同
- 2025年度金融机构员工绩效补充劳动合同范本
- 2025医疗器械租赁终止及设备更新补充协议
- 2025年电子商务平台佣金分成及营销支持合作协议
- 2025年度茶叶功能性产品研发与品牌授权合作协议
- 2025年智慧餐饮节能减排工程及综合能源管理合同模板
- 龙虎山正一日诵早晚课
- 微积分的力量
- 中国股票市场投资实务(山东联盟)知到章节答案智慧树2023年山东工商学院
- 安徽宇邦新型材料有限公司年产光伏焊带2000吨生产项目环境影响报告表
- 号线项目tcms便携式测试单元ptu软件使用说明
- 艺术课程标准(2022年版)
- 癫痫所致精神障碍
- 卫生部手术分级目录(2023年1月份修订)
- 电荷及其守恒定律、库仑定律巩固练习
- YY 0666-2008针尖锋利度和强度试验方法
- GB/T 6663.1-2007直热式负温度系数热敏电阻器第1部分:总规范
评论
0/150
提交评论