北大数字集成电路课件--10-11_verilog行为级建模 .ppt

北大数字集成电路课件--10-11_verilog行为级建模 .ppt

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

数字集成电路设计入门 --从HDL到版图 于敦山 北大微电子学系 第10章 Verilog操作符 学习内容: 熟悉Verilog语言的操作符 操作符类型 Verilog中的大小(size)与符号 Verilog根据表达式中变量的长度对表达式的值自动地进行调整。 Verilog自动截断或扩展赋值语句中右边的值以适应左边变量的长度。 当一个负数赋值给无符号变量如reg时,Verilog自动完成二进制补码计算 算术操作符 按位操作符 逻辑操作符 逻辑反与位反的对比 一元归约操作符 移位操作符 关系操作符 相等操作符 相等操作符 相等操作符 条件操作符 条件操作符 级联操作符 复制 复习 第11章 行为建模 学习内容: 行为建模的基本概念 Verilog中高级编程语言结构 如何使用连续赋值 行为描述 行为级描述是对系统的高抽象级描述。在这个抽象级,注重的是整个系统的功能而不是实现。 Verilog有高级编程语言结构用于行为描述,包括: wait, while, if then, case和forever Verilog的行为建模是用一系列以高级编程语言编写的并行的、动态的过程块来描述系统的工作。 过程(procedural)块 过程块是行为模型的基础。 过程块有两种: initial块,只能执行一次 always块,循环执行 过程块中有下列部件 过程赋值语句:在描述过程块中的数据流 高级结构(循环,条件语句):描述块的功能 时序控制:控制块的执行及块中的语句。 过程赋值(procedural assignment) 在过程块中的赋值称为过程赋值。 在过程赋值语句中表达式左边的信号必须是寄存器类型(如reg类型) 在过程赋值语句等式右边可以是任何有效的表达式,数据类型也没有限制。 如果一个信号没有声明则缺省为wire类型。使用过程赋值语句给wire赋值会产生错误。 过程时序控制 在过程块中可以说明过程时序。过程时序控制有三类: 简单延时(#delay):延迟指定时间步后执行 边沿敏感的时序控制:@(<signal>) 在信号发生翻转后执行。 可以说明信号有效沿是上升沿(posedge)还是下降沿(negedge)。 可以用关键字or指定多个参数。 电平敏感的时序控制:wait(<expr>) 直至expr值为真时(非零)才执行。 若expr已经为真则立即执行。 简单延时 边沿敏感时序 wait语句 命名事件(named event) 行为描述举例 在上面的例子中发生下面顺序的事件: 等待set=1,忽略时刻10的clk的posedge。 等待下一个clk的posedge,它将在时刻30发生。 等待3个时间单位,在时刻33(30+3)置q=1。 等待10个时间单位,在时刻43(33+10)置q=0。 等待在时刻48发生的set=0。 等待在时刻70发生且与clk的上升沿同时发生的set=1。 等待下一个上升沿。时刻70的边沿被忽略,因为到达该语句时时间已经过去了,如例子所示,clk=1。 重要内容:在实际硬件设计中,事件6应该被视为一个竞争(race condition)。在仿真过程中,值的确定倚赖于顺序,所以是不可预测的。这是不推荐的建模类型。 RTL描述举例 块语句 块语句用来将多个语句组织在一起,使得他们在语法上如同一个语句。 块语句分为两类: 顺序块:语句置于关键字begin和end之间,块中的语句以顺序方式执行。 并行块:关键字fork和join之间的是并行块语句,块中的语句并行执行。 块语句(续) 在顺序块中,语句一条接一条地计算执行。 在并行块中,所有语句在各自的延迟之后立即计算执行。 延迟赋值语句 延迟赋值语句 非阻塞过程赋值 非阻塞过程赋值(续) 非阻塞过程赋值(续) 非阻塞过程赋值(续) 非阻塞过程赋值(续) 非阻塞过程赋值(续) 条件语句(if分支语句) 可以多层嵌套。在嵌套if序列中,else和前面最近的if相关。 为提高可读性及确保正确关联,使用begin…end块语句指定其作用域。 条件语句(case分支语句) 条件语句-case语句 Case语句进行逐位比较以求完全匹配(包括x和z)。 Default语句可选,在没有任何条件成立时执行。此时如果未说明default,Verilog不执行任何动作。 多个default语句是非法的。 循环(looping)语句 循环(looping)语句-repeat 循环(looping)语句 循环(looping)语句 循环(looping)语句 行为级零延时循环 持续赋值(continuous assignment) 可以用持续赋值语句描述组合逻辑,代替用门及其连接

文档评论(0)

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

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

1亿VIP精品文档

相关文档