已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
EDA课程设计 VerilogHDL程序设计 教师 郑兆兆2013年12月30日 原理图设计输入硬件描述语言设计输入 VHDL VerilogHDL 波形设计输入底层设计输入层次设计输入 EDA设计输入方式 VerilogHDL是目前应用最为广泛的硬件描述语言之一 与VHDL各有千秋 1993年 IEEE专门成立IEEE1364工作组制定VerilogHDL的标准 在1995年发布了第1个VerilogHDL的标准 即IEEE1364 1995 随后 IEEE在2002年发布了经过修订的VerilogHDL新标准 命名为IEEE1364 2001 VerilogHDL允许在不同的抽象级别上对数字电路系统进行描述 这些抽象级别包括系统级 SystemLevel 算法级 AlgorithmLevel 寄存器传输级 RegisterTransferLevel 门级 GateLevel 和开关级 SwitchLevel 系统级 算法级 寄存器传输级描述都被称为行为描述 VerilogHDL语言特点 1 VerilogHDL语法规则与C语言十分相像 2 VerilogHDL语法检查不严格 3 VerilogHDL自身带有仿真指令 VerilogHDL基础 VerilogHDL设计模块结构一个完整的VerilogHDL设计模块包括端口定义 I O声明 变量类型声明和功能描述等4个部分 moduledecide f a b c 端口定义inputa b c I Ooutputf 声明 wirea b c 变量regf 类型声明 always aorborc 功begin能 描end述 endmodule 1 模块端口定义模块端口定义用来声明电路设计模块的输入输出端口 端口定义格式如下 module模块名 端口1 端口2 端口3 例 moduledecide f a b c 2 模块的I O声明模块的I O声明用来声明模块端口定义中各端口数据流动方向 包括 input 输入 output 输出 和inout 双向 I O声明格式如下 input端口1 端口2 端口3 声明输入端口output端口1 端口2 端口3 声明输出端口例 inputa b c outputf 3 变量类型声明变量类型声明用来表明设计电路的端口和内部电路使用的变量的数据类型 变量的数据类型主要有wire 连线 reg 寄存器 integer 整型 real 实型 和time 时间 输入 输出端口类型默认时 自动定义为wire型 4 功能描述功能描述是VerilogHDL程序设计中最主要的部分 用来描述设计模块的内部结构和模块端口间的逻辑关系 在电路上相当于器件的内部电路结构 功能描述可以用assign语句 元件例化 InstAntiate always块语句 initial块语句等方法来实现 通常把确定这些设计模块描述的方法称为建模 VerilogHDL的词法 一 空白符和注释 二 常数 三 字符串 四 标识符区分大小写 字母 数字 下划线 五 关键词 六 操作符 1 算术操作符求余符号 2 逻辑操作符 3 位运算 4 关系操作符等 七 VerilogHDL数据对象 VerilogHDL的语句 一 赋值语句 1 门基元赋值语句基本逻辑门关键词例化门标识符 门输出 门输入1 门输入2 门输入n 例如 具有a b c d输入和y输出与非门的门基元赋值语句为 nandu1 y a b c d 2 连续赋值语句连续赋值语句的关键词是assign 赋值符号是 连续赋值语句 号两边的变量都应该是wire型变量 连续赋值语句的格式为assign赋值变量 表达式 例如 具有a b c d输入和y输出与非门的连续赋值语句为assigny a 3 过程赋值语句过程赋值语句出现在initial和always块语句中 包括阻塞赋值语句 非阻塞赋值语句 在过程赋值语句中 赋值变量必须是寄存器型变量 reg integer real i 阻塞赋值语句阻塞赋值符号是 语句格式为赋值变量 表达式 例 y a其值不像在阻塞赋值语句那样 语句结束时即刻得到 而在该块语句结束才可得到 always posedgeclock beginm 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语句 endii if 表达式 begin语句 endelsebegin语句 endiii if 表达式 begin语句 endelseif 表达式 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 在一个敏感信号列表中 不要既有电平信号又有边沿信号 五 语句的顺序执行与并行执行VerilogHDL中由顺序执行语句和并行执行语句之分 VerilogHDL的always块中的语句是顺序语句 按照程序书写的顺序执行 但always块本身却是并行语句 always块语句中敏感信号表中列出的任何信号的改变 都将启动always块语句 使always块语句内相应的顺序语句被执行一次 always块 initial块 和assign都是并行的 VerilogHDL模块设计 一 门电路设计 1 assign语句建模用assign描述一个2输入端与非门的语句格式为assigny1 a1y1为wire型变量 2 用门级元件例化建模方式 门基元赋值语句 门类型关键词 例化门的名称 端口列表 门类型关键词包括 not 非门 and 与门 nand 与非门 or 或门 nor 或非门 xor 异或门 xnor 异或非门 buf 缓冲器 及bufif1 bufif0 notif1和notif0等各种三态门 用门级元件例化建模方式来描述2输入端与非门的语句格式为nandu1 y1 a1 b1 u1是可选的例化门名称 二 组合逻辑电路设计在组合逻辑电路中 任何时刻的输出仅决定于当时的输入信号在数字系统中 有些逻辑电路是经常使用的 如加法器 编码器 译码器 数据选择器 数据比较器 奇偶校验器等 用VerilogHDL的case语句可以直接描述真值表3 3 35页 表示的逻辑抽象结果 完整的源程序bcd8421 v如下 modulebcd8421 A B input 3 0 A output 3 0 B reg 3 0 B always A begincase A 0 B 3 1 B 4 2 B 5 3 B 6 4 B 7 5 B 8 6 B 9 7 B 10 8 B 11 9 B 12 default B 4 bx endcaseendendmodule 下面是用VerilogHDL的if语句编写的8421BCD码到余3BCD码转换电路bcd8421 1 v modulebcd842 1 A B input 3 0 A output 3 0 B reg 3 0 B always A beginif A 9 B A 3 elseB 4 bx endendmodule在源程序中 仅用 B A 3 就可以得到余3BCD码的结果 三 基于VerilogHDL的触发器设计图3 2基本RS触发器电路结构根据基本RS触发器的输出表达式用VerilogHDL的结构描述方式编写的源程序RS FF v如下 moduleRS FF Q QN SDN RDN inputSDN RDN outputQ QN assignQ SDNendmodule 根据基本RS的特性 见表3 4 37页 也可以用VerilogHDL行为描述方式设计基本RS触发器 源程序RS FF 1 v如下 moduleRS FF Q QN SDN RDN inputSDN RDN outputQ QN regQ QN always RNorSN begincase RN SN b00 beginQ bx QN bx end b01 beginQ 0 QN 1 end b10 beginQ 1 QN 0 end b11 beginQ Q QN QN endendcaseendendmodule 四 时序逻辑电路设计电路结构决定了时序逻辑的特点 即任一时刻的输出信号不仅取决于当时的输入信号 而且还取决于电路的原来的状态 根据十进制同步计数器 异步清除 的功能 用VerilogHDL设计的源程序CT74160 v如下 moduleCT74160 LDN D3 D2 D1 D0 CP CRN EP ET Q3 Q2 Q1 Q0 OC inputLDN D3 D2 D1 D0 CP CRN EP ET outputQ3 Q2 Q1 Q0 OC regQ3 Q2 Q1 Q0 OC reg 3 0 Q TEMP always posedgeCPornegedgeCRN beginif CRN Q TEMP 4 b0000 elseif LDN Q TEMP D3 D2 D1 D0 elseif EPendendmodule 用结构描述实现电路系统设计任何用VerilogHDL描述的电路设计模块 module 均可用模块例化语句 例化一个元件 来实现电路系统的设计 模块例化语句格式与逻辑门例化语句格式相同 具体格式如下 元件名 例化元件的名称 端口列表 一 位置关联法位置关联法要求端口列表中的引脚名称应与设计模块的输入 输出端口一一对应 多个端口名之间用 半角逗号 分隔 例如 在4位二进制计数器cnt4e的设计中 Q COUT CLK和ENA分别是4位二进制计数器的状态输出端和使能控制输入端 注意这是电路设计时用 modulecnt4e Q COUT CLK ENA 语句定义的端口名称和顺序 则语句 cnt4eu1 X1 X2 CLK ENA 表示cnt4e元件的Q COUT ClK和ENA引脚分别与插座上的X1 X2 CLK和ENA引脚连接 二 名称关联法名称关联法的端口列表格式如下 设计模块端口名 插座引脚名 设计模块端口名 插座引脚名 cnt4e是用VerilogHDL设计的4位二进制计数器的元件符号 源程序如下 modulecnt4e Q COUT CLK ENA inputCLK ENA output 3 0 Q outputCOUT reg 3 0 Q regCOUT always posedgeCLK beginif ENA Q Q 1 if Q b1111 COUT b1 elseCOUT b0 endendmodule dec7s是用VerilogHDL设计的七段显示译码器的元件符号 源程序如下 moduledec7s A Q input 3 0 A output 6 0 Q reg 6 0 Q always A begincase A 0 Q b0111111 1 Q b0000110 2 Q b1011011 3 Q b1001111 4 Q b1100110 5 Q b1101101 6 Q b1111101 7 Q b0000111 8 Q b1111111 9 Q b1101111 10 Q b1110111 11 Q b1111100 12 Q b0111001 13 Q b1011110 14 Q b1111001 15 Q b1110001 endcaseendendmodule 根据图3 4所示的原理图结构 用V
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 47403-2026铌铁铌、钽、硅、磷、铝含量的测定波长色散X射线荧光光谱法(熔铸玻璃片法)
- DB65T 8029-2024住房和城乡建设标准体系框架
- 三级劳动关系协调员考试题及答案
- 特种设备维护保养检查记录表(自动人行道)
- 加油站柴油泄漏应急演练脚本
- 污水处理运维面试题及答案
- 中国药物过敏防治指南(2026版)
- 儿科喉炎喉梗阻应急演练脚本
- 危货快递运输安全监管平台
- 小儿尿崩症护理查房
- 2024-2025学年广东省部分高中高二下学期期中考试历史试题(解析版)
- 钢结构劳务分包施工方案
- 市政工程项目分包与管理案例分析
- 2026年《必背60题》法官助理高频面试题包含答案
- 地雷基础课件
- 工业蒸馏安全操作规程与注意事项
- 新疆喀什地区(2025年)公安辅警招聘知识考试题(含答案)
- 云仓一件代发合作合同
- 2024广西金融职业技术学院辅导员招聘笔试真题及答案
- 2025年安徽省高考物理真题卷含答案解析
- 中小学生守则及中学生日常行为规范(新版)
评论
0/150
提交评论