网站大量收购闲置独家精品文档,联系QQ:2885784924

Verilog语言编程基础课案.ppt

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

Verilog语言中阻塞和非阻塞赋值 Verilog语言中常见的错误 Verilog语言的4大法宝 Verilog语言的4大法宝 Wire----数据类型:Verilog结构化元件间的物理连线。 Reg ----数据类型:寄存器类型 Assign----连续赋值语句 Always----Always语句只要条件满足始终重复执行 连续赋值语句assign 连续赋值语句的执行是:只要右边表达式任一个变量有变化,表达式立即被计算,计算的结果立即赋给左边信号。 连续赋值语句之间是并行语句,因此与位置顺序无关。 过程赋值语句Always Verilog HDL 有两种过程赋值语句: initial 和 always 语句,实现行为建模。这两种语句之间的执行是并行的,即语句的执行与位置顺序无关。这两种语句通常与语句块(begin ....end)相结合,则语句块中的执行是按顺序执行的。 initial 语句只执行一次,即在设计被开始模拟执行时开始(0时刻)。通常只用在对设计进行仿真的测试文件中,用于对一些信号进行初始化和产生特定的信号波形。 always 语句与initial 语句相反,是被重复执行,执行机制是通过对一个称为敏感变量表的事件驱动来实现的 Verilog语言的4大法宝 assign、always例子: Verilog语言的4大法宝 在assign语句中赋值的变量要定义为wire。 在always块中被赋值的变量要定义为reg。 reg变量并不一定被综合为寄存器。always块也可以用来描述组合逻辑。 Reg 变量 wire 变量 小提示 整个逻辑设计中的Module,以及Module中的Always语句块、Assign语句都是并行动作的。 因此Module中的Always语句块、 Assign语句、例化Module语句书写位置是没有要求的。 Verilog语言中常见的错误 Verilog语言中阻塞和非阻塞赋值 阻塞赋值与非阻塞赋值 阻塞赋值 赋值操作符是“=”的过程赋值是阻塞性过程赋值。 阻塞性过程赋值在其后所有语句执行前执行,即在下一语句执行前该赋值语句完成执行。 T1赋值首先发生,计算T1; 接着执行第二条语句, T2被赋值; 然后执行第三条语句, T3被赋值;依此类推。 阻塞赋值与非阻塞赋值 非阻塞赋值 在非阻塞性过程赋值中,使用赋值符号“ =”。 当非阻塞性过程赋值被执行时,计算右端表达式,右端值被赋于左端目标,并继续执行下一条语句。 非阻塞语句并行执行 第一条语句的执行使Clr 在第5个时间单位被赋于值1;第二条语句的执行使Clr在第4个时间单位被赋值为0 (从0时刻开始的第4个时间单位);最终,第3条语句的执行使Clr在第10个时间单位被赋值为0 (从0时刻开始的第10个时间单位)。注意3条语句都是在0时刻执行的。此时,非阻塞性赋值执行次序变得彼此不相关。 阻塞赋值与非阻塞赋值使用准则 原则1:对时序逻辑建模时,使用非阻塞赋值。 原则2:对锁存器建模时,使用非阻塞赋值。 原则3:用always块对组合逻辑建模时,使用阻塞赋值。 原则4:在同一always块中对时序逻辑和组合逻辑同时建模时,使用非阻塞赋值。 原则5:在同一always块中,不要混合使用阻塞和非阻塞赋值。 原则6:不要用多个always块对同一变量进行赋值。 原则7:使用$strobe显示非阻塞赋值的结果。 Verilog语言中常见的错误 避免出现不期望的锁存器 所谓Latch,其实质上在组合电路中有反馈。 反馈的形成是因为利用到前一个状态。 a没有赋值 避免出现不期望的锁存器 If 条件没有穷举 对if 语句,除非在时序逻辑中,if 语句需要有else 语句。若没有缺省语句,设计将产生一个锁存器,锁存器在ASIC设计中有诸多的弊端。 Always的敏感列表不完整 如果敏感列表不完整,会导致前仿真和后仿真结果不一致。 在一个Always中处理多个变量 没有涉及状态机和FIFO的讲解 谢谢! * Welcome to Huawei. * * * * * * * * * * VerilogHDL语言编程基础 大连XXX网络技术有限公司 HDL语言简介 Verilog 中的模块(Module) Verilog语言中常用语句 Verilog语言中阻塞和非阻塞赋值 Verilog语言中常见的错误 Verilog的语言要素 Verilog语言的4大法宝 HDL语言简介 HDL:硬件描述语言 (Hardware Description Language) 目前通用的 HDL 语言有VHDL和Verilog两种。目前多数 FPGA 厂商都有自己的逻辑综合工具,或者采用第三方的设计综合工具来支持自己的器件开发。这是由于HDL完成的设计具有可移植、易维护

文档评论(0)

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

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档