收藏 分享(赏)

北大数字集成电路课件--18_Verilog用户自定义单元.ppt

上传人:j35w19 文档编号:4571816 上传时间:2019-01-02 格式:PPT 页数:15 大小:74.50KB
下载 相关 举报
北大数字集成电路课件--18_Verilog用户自定义单元.ppt_第1页
第1页 / 共15页
北大数字集成电路课件--18_Verilog用户自定义单元.ppt_第2页
第2页 / 共15页
北大数字集成电路课件--18_Verilog用户自定义单元.ppt_第3页
第3页 / 共15页
北大数字集成电路课件--18_Verilog用户自定义单元.ppt_第4页
第4页 / 共15页
北大数字集成电路课件--18_Verilog用户自定义单元.ppt_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、第18章 用户定义基本单元,学习内容:,学习如何使用用户定义基本单元进行逻辑设计,术语及定义,UDP: 用户定义基本单元,其行为和Verilog内部的基本单元相似。其功能用真值表定义。,什么是UDP,在Verilog结构级描述中,可以使用: 二十多个内部门级基本单元 用户自定义基本单元UDP在ASIC库单元开发、中小型芯片设计中很有用 可以使用UDP扩充已定义的基本单元集 UDP是自包容的,也就是不需要实例化其它模块 UDP可以表示时序元件和组合元件 UDP的行为由真值表表示 UDP实例化与基本单元实例化相同,什么是UDP,可以使用UDP扩充已定义的基本单元集 UDP是一种非常紧凑的逻辑表示方

2、法。 UDP可以减少消极(pessimism)因素,因为一个input上的x不会像基本单元那样自动传送到output。 一个UDP可以替代多个基本单元构成的逻辑,因此可以大幅减少仿真时间和存储需求。相同逻辑的行为级模型甚至可以更快,这取决于仿真器。,UDP的特点,UDP只能有一个输出如果在功能上要求有多个输出,则需要在UDP输出端连接其它的基本单元,或者同时使用几个UDP。UDP可以有1到10个输入若输入端口超过5,存储需求会大幅增加。下表列出输入端口数与存储需求的关系。,所有端口必须为标量且不允许双向端口 不支持逻辑值Z 输出端口必须列为端口列表的第一个 时序UDP输出端可以用initial

3、语句初始化为一个确定值。 UDP不可综合,这两行用于减少消极因素。表示若a, b有相同逻辑值,即使sel=x,o也输出与a,b相同的值。Verilog内部基本单元不能描述这种行为。UDP将X作为真实世界的未知值(0或1),而不是Verilog值,描述也更为精确。,这两行表示不管a为何值,若s为o,o输出b值,组合逻辑举例:2-1多路器,UDP在模块(module)外部定义。 没有在真值表中说明的输入组合,输出X。 真值表中输入信号按端口列表顺序给出。,primitive multiplexer (o, a, b, s);output o;input s, a, b;table/ a b s :

4、 o0 ? 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值,组合逻辑举例:全加器,/ FULL ADDER CARRY-OUT TERM primitive U_ADDR2_C (CO, A, B, CI);output CO;input A, B, Ci;table / A B CI : CO1 1 ? : 1;1 ? 1 : 1;? 1 1 : 1;0 0 ? : 0;0 ?

5、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 : S0 0 0 : 0;0 0 1 : 1;0 1 0 : 1;0 1 1 : 0;1 0 0 : 1;1 0 1 : 0;1 1 0 : 0;1 1 1 : 1;endtable endprimitive,组合逻辑举例:全加器,当需要大量全加器时,可以大幅度减少存储器需求 大幅减小事件数目。使

6、用内部基本单元时,事件通过3个基本单元后才能到达进位输出;而使用UDP,事件只需经过一个基本单元。,全加器可以由两个组合逻辑UDP实现,而不使用内部基本单元。,电平敏感时序元件举例:锁存器latch,锁存器的行为如下: 当时钟输入为0时,data输入的值传送到输出。 当时钟输入为1时,输出不变。 这种加电初始化在实际元件中很少见,但在UDP功能测试时很有用。,primitive latch (q, clock, data);output q;reg q;input clock, data;initial q = 1b1;table/ clock data current next/ state

7、 state0 1 : ? : 1 ;0 0 : ? : 0 ;1 ? : ? : - ;endtable endprimitive,输出必须声明为reg以保存前一状态,时序UDP初始化语句,将输出初始化为1,输入及当前状态中的?表示无关值,用另一个场表示下一状态,-状态值表示输出没有变化,边沿敏感时序元件举例:D触发器,在任何一个真值表入口语句中只能说明一个输入跳变。 如果说明了任何输入跳变,则必须说明所有输入上的所有跳变。,primitive d_edge_ff (q, clk, data);output q;input clk, data;reg q;table / clk dat st

8、ate next(01) 0 : ? : 0 ;(01) 1 : ? : 1 ;(0x) 1 : 1 : 1 ;(0x) 0 : 0 : 0 ;(x1) 0 : 0 : 0 ;(x1) 1 : 1 : 1 ; /忽略时钟下降沿(?0) ? : ? : - ; (1x) ? : ? : - ; /时钟稳定时忽略data变化? (?) : ? : - ; endtable endprimitive,表里有边沿项表示输入跳变。 在一条入口语句中只能说明一个输入跳变,因为Verilog仿真是基于事件,一次只允许一个事件发生。 在每个时间步中,电平入口优先于边沿入口,因为电平最后处理。因此,下面的出口:

9、(? 0) ? : ? : - ;可由下式取代:0 ? : ? : - ;两个都给出时,只有后者起作用,提高可读性的简写形式,Verilog中有一些符号可用于UDP真值表中以提高可读性,提高可读性的简写形式,table / clk dat state nextr 0 : ? : 0 ;r 1 : ? : 1 ;(0x) 1 : 1 : 1 ;(0x) 0 : 0 : 0 ;(x1) 1 : 1 : 1 ;(x1) 0 : 0 : 0 ; / 忽略时钟的下降沿n ? : ? : - ; / 忽略时钟稳定时的任何数据变化? * : ? : - ; endtable,带同步复位的D触发器,primi

10、tive U_ff_p_cl( q, d, clk, cl);input d, clk, cl;output q;reg q; table / d clk cl :q :q+ 11 r 1 :? : 1; / clock 10 r ? :? : 0; / clock 0? r 0 :? : 0; / reset? p 0 :0 : -; / reducing pessimism1 p 1 :1 : -;0 p ? :0 : -;? n ? :? : -; / ignore falling clk* ? ? :? : -; / ignore changes on d? ? * :? : -; /

11、 ignore changes on clk endtable endprimitive,带使能和复位的锁存器,当使能g为高(H)时,锁存器锁存d;只有当g为低时复位信号cl才有效(高有效)。,使用通报符(notifier)的寄存器,timescale 1ns/ 1ns module dff_nt (q, ck, d, rst); input ck, d, rst; output q; reg nt; U_FFD_RB i1 (q, d, ck, rst, nt); specifyspecparam tsu = 2;(ck = q) = (2: 3: 4);$setup (d, posedge

12、 ck, tsu, nt); endspecify endmodule,下面的例子是异步复位的上升沿D触发器,有时序检查和路径延迟。这个模型使用了一个UDP,并将通报符作为UDP的一个输入。,primitive U_ FFD_ RB (Q, D, CP, RB,NT); output Q; reg Q; input D, CP, RB, NT; table / D CP RB NT :Q :Q+ 10 r ? ? :? : 0; / clock a 01 r 1 ? :? : 1; / clock a 11 p 1 ? :1 : -; / reducing pessimism0 p ? ? :0 : -; / reducing pessimism? ? 0 ? :? : 0; / asynchronous reset? ? x ? :0 : -; / reducing pessimism? n ? ? :? : -; / ignore falling clock* ? ? ? :? : -; / ignore rising edges on D? ? * ? :? : -; / ignore changes on reset? ? ? * :? : x; / NT变化使Q产生x endtable endprimitive,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 通信信息 > 电子设计

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报