已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
关于关于 timescale 转载 转载 在 Verilog HDL 模型中 所有时延都用单位时间表述 使用 timescale 编译器指令将时间单位与实际时间相关联 该指令用于定 义时延的单位和时延精度 timescale 编译器指令格式为 timescale time unit time precision time unit 和 time precision 由值 1 10 和 和 100 以及单位 s ms us ns ps 和和 fs 组成 例如 timescale 1ns 100ps 表示时延单位为 1ns 时延精度为 100ps timescale 编译器指令在模块说明外部出现 并且影响后面所有的时延值 例如 timescale 1ns 100ps MODULE AndFunc Z A B OUTPUT Z input A B and 5 22 6 17 Al Z A B 规定了上升及下降时延值 endMODULE 编译器指令定义时延以 ns 为单位 并且时延精度为 1 10 ns 100 ps 因此 时延值 5 22 对应 5 2 ns 时延 6 17 对应 6 2 n s 如果用如下的 timescale 程序指令代替上例中的编译器指令 timescale 10ns 1ns 那么 5 22 对应 52ns 6 17 对应 62ns 在编译过程中 timescale 指令影响这一编译器指令后面所有模块中的时延值 直至遇到另一个 timescale 指令或 resetall 指令 当一个设计中的多个模块带有自身的 timescale 编译指令时将发生什么 在这种情况下 模拟器总是定位在所有模块的最小时延精 度上 并且所有时延都相应地换算为最小时延精度 例如 timescale 1ns 100ps MODULE AndFunc Z A B OUTPUT Z input A B and 5 22 6 17 Al Z A B endMODULE timescale 10ns 1ns MODULE TB reg PutA PutB WIRE GetO initial begin PutA 0 PutB 0 5 21 PutB 1 10 4 PutA 1 15 PutB 0 end AndFunc AF1 GetO PutA PutB endMODULE 在这个例子中 每个模块都有自身的 timescale 编译器指令 timescale 编译器指令第一次应用于时延 因此 在第一个模块中 5 22 对应 5 2 ns 6 17 对应 6 2 ns 在第二个模块中 5 21 对应 52 ns 10 4 对应 104 ns 15 对应 150 ns 如果仿真模块 TB 设计中的所有模块最小时间精度为 100 ps 因此 所有延迟 特别是模块 TB 中的延迟 将换算成精度为 100 ps 延迟 52 ns 现在 对应 520 100 ps 104 对应 1040 100 ps 150 对应 1500 100 ps 更重要的是 仿真使用 100 ps 为时间精度 如果仿真模块 An dFunc 由于模块 TB 不是模块 AddFunc 的子模块 模块 TB 中的 timescale 程序指令将不再有效 参考资料 1 关于关于 verilog 中中 timescale 的讨论的讨论 在 verilog 中是没有默认 timescale 的 一个没有指定 timescale 的 verilog 模块就有可能错误的继承了前面编译模块的无效 times cale 参数 所以在 verilog 的 LRM 中推荐 在每个 module 的前面指定 timescale 并且相应的在最后加一个 resetall 来确保 timescale 的局部有效 为了确认这种用法 我编写了一个小小的包含两个模块 module a 和 module b 的 testbench 其中 module a module b 与 testb ench 指定了不同的 timescale 精度 通过 simulation 的波形可以发现 Simulator 的确在不同的 module 中使用了不同的 times 精度 代码如下 文件名 module a v timescale 100ps 1ps module a clk input clk wire clk a assign 5 clk a clk endmodule resetall 文件名 module b v timescale 10ps 1ps module b clk input clk wire clk b assign 5 clk b clk endmodule resetall 文件名 testbench v timescale 1ns 10ps module tb reg clk initial begin clk 0 end initial begin fsdbDumpvars 12500 finish end always begin 10 clk clk end a a inst clk b b inst clk endmodule 波形如下 结论 从上面的波形中可以看出 虽然使用了相同的 delay 表述 assign 5 clk a b clk 但由于在 module 中指定的 timescale 精度不同 在实际的 simulation 中 delay 的长度是不同的 但都是等于 5 timescale 最小精度 对 timescale 的深入理解 在实际应用过程中 如网口 IP CORE 调试过程中 就会出现不同文件的 module 在不同的时间单位和精度的情况之下 因此 有必要对这个问题进行深入 透彻地了解和分析 下面进行详细分析 I 在顶层文件里 instantiates each module 本身不写 timescale 命令 但据说对 modelsim 的默认情况是 timescale 1ps 1ps 现看看 波形图和各模块程序 待测信号Posedge time timescale延迟时间表达式 b d f5 ns NONENONE A5 ns 1 6 ns1ns 100ps 1 55 C5 ns 1 55 ns 1ns 10ps 1 55 e5 ns 0 16 ns 100ps 10ps 1 55 分析 top 文件完全没有干涉各模块的时间单位和精度 程序如下 top v 文件 无 timescale module top a b c d e f output a c e input b d f timescale t t 1 A a B b timescale tt t 2 C c D d timescale ttt t 3 E e F f endmodule timescale t v 文件 timescale 1ns 100ps module timescale t A B output A input B assign 1 55 A B endmodule timescale tt v 文件 timescale 1ns 10ps module timescale tt C D output C input D assign 1 55 C D endmodule timescale ttt v 文件 timescale 100ps 10ps module timescale ttt E F output E input F assign 1 55 E F endmodule II 在顶层文件里写上 timescale 1ns 1ps 其他设置和程序不变 看看波形图 待测信号Posedge time timescale延迟时间表达式 b d f5 ns 1ns 1ps NONE A5 ns 1 660 ns1ns 100ps 1 55 C5 ns 1 550 ns1ns 10ps 1 55 E5 ns 0 160 ns100ps 10ps 1 55 分析 可见如果顶层写明了 timescale 命令 那么它将会影响其模块内部各子模块的精度 而不会对时间单位产生任何影响 但是 如果 top v 中的时间 精度比某个子模块的大 程序将如何处理呢 答案是 结果和 I 中的一样 III 在顶层文件的各实例化文件前面写上不同的 timescale 其他不变 看看效果 显示 在一个 module 内部不可以编写 timescale 命令 程序如下 timescale 1ns 100ps module top a b c d e f output a c e input b d f timescale 1ns 100ps timescale t t 1 A a B b timescale 1ns 10ps timescale tt t 2 C c D
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医学26年:肾科护理质量控制要点 查房课件
- 破碎工岗位责任制(3篇)
- 妇幼保健机构儿童保健服务项目管理规范
- 领导不足之处改进措施
- 超速行驶考试题库及答案
- 2025年监理工程师《监理概论》考试真题及答案解析
- 公司财务人员个人总结
- 人际交往的黄金法则
- 无导线起搏器安置术患者的围术期护理
- 2023年护理年度工作总结
- 黑吉辽蒙2025年高考真题物理试卷【附答案】
- 2026年心理咨询师通关测试卷含完整答案详解(夺冠)
- 2026年浙江公务员考试行测真题及答案解析
- 2026中信证券总部暑期日常实习招聘笔试备考试题及答案解析
- 山东铁投集团招聘笔试真题2025
- 城镇供水长距离输水管(渠)道工程技术规程
- 倒班人员作息健康管理培训
- 【英语】江苏苏州市2025-2026学年度第一学期2026届高三年级期末调研考试(苏州零模)(2.3-2.5)
- 2026年口腔技术员-通关题库附答案详解【培优A卷】
- 上海机场集团校招面笔试题及答案
- AI生成式内容赋能智慧文旅:2026沉浸式体验应用案例与趋势
评论
0/150
提交评论