veriloghdl语言初步.ppt

  1. 1、本文档共237页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
veriloghdl语言初步

Verilog HDL语言初步 主讲 杨全胜 东南大学计算机科学与工程学院 第一部分 Verilog HDL语言 §1 综述 一. 什么是硬件描述语言? 二.为什么要用HDL? 三、Bottom Up和 Top down的设计方法 Top down 的设计方法的特点: 四.设计过程 §2 Verilog HDL设计初步 一. Verilog HDL与C语言的比较 Verilog HDL与C语言运算符的比较 二. Verilog模块的基本结构 要点总结: §3 Verilog HDL语言要素 一. 词法 二. 数据类型 三. 寄存器和存储器 四. 运算符 §4 Verilog HDL行为语句 一. 过程语句 1. always过程语句 2. initial过程块 3. 两类语句在模块中的使用 二. 块语句 三.赋值语句 1. 持续赋值语句(不能出现在过程块中) 2. 过程赋值语句 四.条件语句 1. if-else 2. case 例:BCD码-七段数码管显示译码 例1:用casez语句实现操作码译码 例2:用casex语句实现操作码译码 3. 条件语句使用要点 五. 循环语句 1. forever语句 例1: 例2: 2. repeat语句 例1:用repeat循环语句来实现循环移位 例2:用repeat实现8位二进制数的乘法 3. while语句 例1:用while实现显示一个32位整数的循环 4. for语句 例1:用for实现显示一个32位整数的循环 §5 进程、任务与函数 进程 任务 函数 任务与函数的区别 一. 进程 1. 进程的特点 2. 举例:加法计数器中的进程 二. 任务 1. 任务的定义 2. 任务的调用 函数 1. 函数的定义 2. 函数的调用 3. 任务与函数的区别 §6 Verilog HDL的描述风格 结构描述 行为描述 数据流描述 一. 结构描述(门级描述) 1. Verilog内置门元件 2. 门元件的调用 二. 行为描述 三. 数据流描述(RTL级描述) §7 Verilog HDL设计 组合逻辑电路举例 1. 三态门 2. 译码器 3. 8-3优先编码器 时序逻辑电路举例 1. 基本D触发器 2. 带异步清0、置1的D触发器 3. 带异步清0、置1的JK触发器 4. 8位数据锁存器 5. 8位移位寄存器 一、层次化设计方法分层原则 二、模型的优化 综合所生成的逻辑易受到模型描述方式的影响,把语句从一个位置移到另一个位置,或者拆分表达式都会对所生成的逻辑产生重大影响,这可能会造成综合出的逻辑门数有所增减,也可能改变其他定时特性。 三、资源分配 所谓资源分配指的是互斥条件下共享算术逻辑运算单元(ALU)的过程 可以通过多路选择器的引入减少ALU的个数,从而节省资源 四、公共子表达式提取 交换律与结合率的使用 for循环中的子式提到循环外 五、毛刺的解决 一个最简单的组合逻辑电路 两输入与门的仿真结果 再进一步分析 结果再分析 总 结 再讨论第一个例子 分 析 仿真结果分析 毛刺的宽度 结 论 消除毛刺的方法(一) 消除毛刺的方法(二) 格式: 门元件名字 例化的门名字 (端口列表) 其中: 1)普通门的端口列表按下面的顺序列出: (输出, 输入1, 输入2, ……); 例:/*三输入与门,名字为a1*/ and a1(out, in1, in2, in3); 2)对三态门,按如下顺序列出输入、输出端口: (输出, 输入, 使能控制端); 例:/*高电平使能的三态门*/ bufif1 mytri1(out, in, enable); 3)对buf和not两种元件的调用,允许有多个输 出,但只能有一个输入。 例:/*1个输入in ,2个输出out1, out2 */ not n1(out1, out2, in); 例:调用门元件实现4选一数据选择器。 module mux4_1a(out,in1,in2,in3,in4,cntrl1,cntrl2); output out; input in1,in2,in3,in4,cntrl1,cntrl2; wire notcntrl1,notcntrl2,w,x,y,z; not (notcntrl1,cntrl2), (notcntrl2,cntrl2); and (w,in1,notcntrl1,notcntrl2), (x,in2,notcntrl1,cntrl2), (y,in3,cntrl1,notcntrl2), (z,in4,cntrl1,cntrl2); or (out,w

文档评论(0)

wujianz + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档