资源预览内容
第1页 / 共40页
第2页 / 共40页
第3页 / 共40页
第4页 / 共40页
第5页 / 共40页
第6页 / 共40页
第7页 / 共40页
第8页 / 共40页
第9页 / 共40页
第10页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第三讲门级与结构建模 内容 结构建模分类Verilog内建基本门门级结构建模门延迟测试模块模块仿真入门 前言 Verilog模型可以是实际电路不同级别的抽象 这些抽象的级别和它们对应的模型类型共有以下五种 系统级 system 算法级 algorithmic RTL级 RegisterTransferLevel 门级 gate level 开关级 switch level 我们将通过许多实际的VerilogHDL模块的设计来了解不同抽象级别模块的结构和可综合性的问题 对于数字系统的逻辑设计工程师而言 熟练地掌握门级 RTL级 算法级 系统级是非常重要的 而对于电路基本部件 如门 缓冲器 驱动器等 库的设计者而言 则需要掌握用户自定义源语元件 UDP 和开关级的描述 一个复杂电路的完整VerilogHDL模型是由若干个VerilogHDL模块构成的 每一个模块又可以由若干个子模块构成 这些模块可以分别用不同抽象级别的VerilogHDL描述 在一个模块中也可以有多种级别的描述 利用VerilogHDL语言结构所提供的这种功能就可以构造一个模块间的清晰层次结构来描述极其复杂的大型设计 结构建模分类 结构建模分类 结构建模侧重反映模块内部的结构组成 门级建模由基本逻辑门级元件互连而成的具有一定功能的电路模块 开关级建模 不讲 是构成VerilogHDL对硬件设计最低层次的描述 通常的综合工具不支持开关级描述 用户定义原语建模 不讲 由用户定义基础元件互连而成的具有一定功能的电路模块 用户定义模块建模由用户定义模块互连而成的具有一定功能的电路模块 Verilog内建基本门 一个逻辑网络是由许多逻辑门和开关所组成 因此用逻辑门的模型来描述逻辑网络是最直观的 VerilogHDL提供了一些门类型的关键字 可以用于门级结构建模多输入门 and nand or nor xor xnor多输出门 buf 缓冲门 not 非门 三态门 bufif0 bufif1 notif0 notif1 只有在控制端有效时才能传递数据 否则输出高阻抗z 上拉 下拉电阻 pullup pulldownMOS开关 cmos nmos pmos rcmos rnmos rpmos双向开关 tran tranif0 tranif1 rtran rtranif0 rtranif1 多输入门 多输入门具有单个输出 2个或多个输入 如图 多输入门实例语句语法 gate typeinstance name output input1 inputN 门类型 实例名可选 单输出 多输入 内建多输入门 与门 and 与门真值表 实例引用 andU1 out in1 in2 andU2 out1 a b c d and out in1 in2 4个输入 与非门 nand 与非门真值表 实例引用 nandU3 out in1 in2 nandU4 out1 a b c 3个输入 或门 or 或门真值表 实例引用 orU5 out in1 in2 U6 out1 a b c 同类门实例引用简化方式 或非门 nor 或非门真值表 实例引用 norU7 out in1 in2 norU8 out1 out b c U7输出out信号连接到U8的输入端口 异或门 xor 异或门真值表 实例引用 xorU9 out in1 in2 xorU10 out1 out in1 c in1信号连接到U9 U10的输入端口 异或非门 xnor 异或门真值表 实例引用 xnorU11 out in1 in2 xor out1 out b c 无实例名 多输出门 多输出门具有单个输入 1个或多个输出 如图 多输出门实例语句语法 gate typeinstance name output1 outputN input 多输入门 输出1 输出n 输入 门类型 实例名可选 多输出 单输入 内建多输出门 真值表 实例引用 bufB1 F1 F2 F3 F4 CLK notN1 A B ready 内建三态门 三态门实例语句语法 gate typeinstance name output input control 内建三态门真值表 门级结构建模 真值表 4选1多路选择器 4选1多路选择器的门级结构建模 moduleMUX4x1 Z D0 D1 D2 D3 S0 S1 outputZ 端口说明inputD0 D1 D2 D3 S0 S1 端口说明wireT1 T2 T3 T4 内部线网说明and T0 D0 S0bar S1bar 4个与门 T1 D1 S0bar S1 T2 D2 S0 S1bar T3 D3 S0 S1 not S0bar S0 2个非门 S1bar S1 or Z T0 T1 T2 T3 1个或门endmodule 门延迟 在实际电路中任何一个逻辑门输入到输出都有延迟 门延迟由三类延迟值组成 1 下降延迟 1 x z02 上升延迟 10 x z3 截止延迟 输出从0 1 x变化到z的延迟 带有延迟定义的门实例引用的语法如下 gate type delay instance name terminal list 带门延迟的实例引用 无延迟值 notN1 Qbar Q 因为没有定义时延 门时延为0 1个延迟值 nand 6 Out In1 In2 所有时延均为6 即上升时延和下降时延都是6 2个延迟值 and 3 5 Out In1 In2 In3 上升时延被定义为3 下降时延为5 转换到x的时延是3和5中间的最小值 即3 3个延迟值 notif1 2 8 6 Dout Din1 Din2 上升时延为2 下降时延为8 截止时延为6 转换到x的时延是2 8和6中的最小值 即2 最小 典型 最大 延迟 实际电路中逻辑门不但有延迟 而且延迟受温度 电压等因素影响 是变化的 门延迟变化采用min typ max形式定义如下 minimum typical maximum最小值 典型值和最大值延迟实例引用 nand 2 3 4 5 6 7 Pout Pin1 Pin2 选择使用哪种延迟通常作为模拟仿真中的一个选项 延迟时间单位由 timescale编译器指令设定 带延迟的4选1多路选择器的门级结构建模 moduleMUX4x1 delay Z D0 D1 D2 D3 S0 S1 outputZ 端口说明inputD0 D1 D2 D3 S0 S1 端口说明wireT1 T2 T3 T4 内部线网说明 缺省说明S0bar S1barand 2 U1 T0 D0 S0bar S1bar 4个与门 上升时延和下降时延都是2U2 T1 D1 S0bar S1 U3 T2 D2 S0 S1bar U4 T3 D3 S0 S1 notU5 S0bar S0 2个非门U6 S1bar S1 or 2 1 U7 Z T0 T1 T2 T3 1个或门endmodule 用户模块结构建模 用MUX4x1用户模块设计16选1多路选择器 16选1多路选择器设计 moduleMUX16x1 Z D S outputZ 端口说明input 15 0 D 端口说明input 3 0 S 端口说明 用户模块建模MUX4x1U1 Z Z3 0 D0 D 0 D1 D 1 D2 D 2 D3 D 3 S0 S 0 S1 S 1 U2 Z Z7 4 D0 D 4 D1 D 5 D2 D 6 D3 D 7 S0 S 0 S1 S 1 U3 Z Z11 8 D0 D 8 D1 D 9 D2 D 10 D3 D 11 S0 S 0 S1 S 1 U4 Z Z15 12 D0 D 12 D1 D 13 D2 D 14 D3 D 15 S0 S 0 S1 S 1 U5 Z Z D0 Z3 0 D1 Z7 4 D2 Z11 8 D3 Z15 12 S0 S 3 S1 S 4 endmodule 模块仿真入门 如何编写测试文件对所做的设计进行测试和验证 modelsim仿真工具入门 Verilog设计的仿真步骤 注 虚线表示编译器能检查输入文件的可读性和是否存在以及是否允许生成输出文件 仿真测试平台的组成 测试模块 为了对已设计的模块进行检验往往需要产生一系列信号作为输出 输入到已设计的模块 并检查已设计模块的输出 看它们是否符合设计要求 这就要求我们编写测试模块 也称作测试文件 常用带 tf扩展名的文件来描述测试模块 4选1多路选择器测试模块1 moduletest MUX4x1 MUX4x1模块测试平台 无输入输出端口reg 3 0 d 测试平台内部激励信号说明reg 1 0 s wireout 模块输出信号MUX4x1mymux out d 0 d 1 d 2 d 3 s 0 s 1 调有被测模块initial 激励信号产生与结果输出begind 4 b1010 s 2 b00 加载输入信号d 3 0 display time d b s 1 b s 0 b out b n d s 1 s 0 out 显示结果 5s 2 b00 加载选择信号s 1 0 display time d b s 1 b s 0 b out b n d s 1 s 0 out 延时后显示结果 5s 2 b01 display time d b s 1 b s 0 b out b n d s 1 s 0 out 5s 2 b10 display time d b s 1 b s 0 b out b n d s 1 s 0 out 5s 2 b11 display time d b s 1 b s 0 b out b n d s 1 s 0 out endendmodule 4选1多路选择器测试模块1仿真结果 0d 1010 s 1 0 s 0 0 out 0 5d 1010 s 1 0 s 0 0 out 0 10d 1010 s 1 0 s 0 1 out 1 15d 1010 s 1 1 s 0 0 out 0 20d 1010 s 1 1 s 0 1 out 1 4选1多路选择器测试模块2 moduletest MUX4x1 delay MUX4x1模块测试平台 无输入输出端口reg 3 0 d 测试平台内部激励信号说明reg 1 0 s wireout 模块输出信号MUX4x1 delaymymux out d 0 d 1 d 2 d 3 s 0 s 1 调用被测模块 initial 激励信号产生与结果输出begin monitor time d b s 1 b s 0 b out b n d s 1 s 0 out 监视输出d 4 b1010 加载输入信号d 3 0 5s 2 b00 加载选择信号s 1 0 5s 2 b01 5s 2 b10 5s 2 b11 endendmodule 4选1多路选择器测试模块2仿真结果 0d 1010 s 1 x s 0 x out x 5d 1010 s 1 0 s 0 0 out 0 10d 1010 s 1 0 s 0 1 out 1 15d 1010 s 1 1 s 0 0 out 0 20d 1010 s 1 1 s 0 1 out 1 Modelsim仿真工具入门
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号