[信息与通信]verilog中的高级结构.ppt

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

第七讲 verilog中的高级结构 任务和函数 电路级建模 用户自定义原语 7.1 任务和函数 2.任务 自动任务 自动任务 3.函数(function) a.递归函数 b.常量函数 c.带符号函数 7.2 电路级建模 Verilog没有描述模拟电路的功能,可以描述mos晶体管,但晶体管仅被当作开关来描述,即只有导通和截止状态。 1.MOS开关 2.CMOS开关 3.双向开关 4.电源和地 5.阻抗开关 6.设计实例 7.3 UDP用户自定义原语 1.术语及定义 UDP的特点 2.语法定义 3.组合逻辑UDP 组合逻辑举例2:全加器 4.时序逻辑电路 举例2:D触发器 5.提高可读性的简写形式 提高可读性的简写形式 例1带同步复位的D触发器 例2带使能和复位的锁存器 作业5 1.定义一个32位函数,其功能是计算一个4位数的阶乘,编写一个模块进行仿真。 可以使用UDP扩充已定义的基本单元集 UDP是一种非常紧凑的逻辑表示方法。 UDP可以减少消极(pessimism)因素,因为一个input上的x不会像基本单元那样自动传送到output。 一个UDP可以替代多个基本单元构成的逻辑,因此可以大幅减少仿真时间和存储需求。相同逻辑的行为级模型甚至可以更快,这取决于仿真器。 UDP只能有一个输出 如果在功能上要求有多个输出,则需要在UDP输出端连接其它的基本单元,或者同时使用几个UDP。 UDP可以有1到10个输入 若输入端口超过5,存储需求会大幅增加。下表列出输入端口数与存储需求的关系。 所有端口必须为标量且不允许双向端口 不支持逻辑值Z 输出端口必须列为端口列表的第一个 时序UDP输出端可以用initial语句初始化为一个确定值。 UDP不可综合 623 187 56 存储器(KB) 17 5 1 存储器(KB) 10 7 9 6 8 1-5 #输入 #输入 primitive udp名称> (输出端口名,输入端口名); //端口说明语句 output 输出端口名; input 输入端口名; reg 输出端口名;(可选,只有在表示时序逻辑的udp才需要) //udp初始化(只有时序逻辑才需要) Initial 输出端口名= 值 //udp状态表 table 状态表 endtable endprimitive 这两行用于减少消极因素。表示若a, b有相同逻辑值,即使sel=x,o也输出与a,b相同的值。Verilog内部基本单元不能描述这种行为。UDP将X作为真实世界的未知值(0或1),而不是Verilog值,描述也更为精确。 这两行表示不管a为何值,若s为o,o输出b值 UDP在模块(module)外部定义。 没有在真值表中说明的输入组合,输出X。 真值表中输入信号按端口列表顺序给出。 primitive multiplexer (o, a, b, s); output o; input s, a, b; table // a b s : o 0 ? 1 : 0; 1 ? 1 : 1; ? 0 0 : 0; ? 1 0 : 1; 0 0 x : 0; 1 1 x : 1; endtable endprimitive UDP名称 输出端口 真值表中?表示的逻辑值为:0、1或x 这两行表示不管b为何值,若s为1,o输出a值 举例:2-1数据选择器 // FULL ADDER CARRY-OUT TERM primitive U_ADDR2_C (CO, A, B, CI); output CO; input A, B, Ci; table // A B CI : CO 1 1 ? : 1; 1 ? 1 : 1; ? 1 1 : 1; 0 0 ? : 0; 0 ? 0 : 0; ? 0 0 : 0; endtable endprimitive 全加器可以由两个组合逻辑UDP实现 // FULL ADDER SUM TERM primitive U_ADDR2_S (S, A, B, CI); output S; input A, B, CI; table // A B CI : S

文档评论(0)

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

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

1亿VIP精品文档

相关文档