北大Verilog课程:矢量回放与验证系统功能详解

需积分: 43 1 下载量 176 浏览量 更新于2024-07-13 收藏 238KB PPT 举报
本资源是一份关于北大Verilog课程的课件,主要关注矢量回放技术在Verilog设计中的应用。在Verilog设计中,矢量回放是通过将测试数据存储在文件(如`vec.txt`)中,然后在测试bench中读取这些数据来驱动电路的行为验证。模块`read_file_tb`展示了如何实现这一过程,其中参数`num_vecs`定义了向DUT(设计单元测试)提供的激励向量数量。`stim`数组用于存储这些向量,`$readmemb`系统任务被用来一次性从文件中读取所有向量。 矢量文件输入/输出的优势在于其灵活性,可以方便地修改激励,同时在设计验证阶段,设计师可以直接利用工具进行反复验证,而无需每次都手动更改激励数据。这提高了效率并减少了错误。 课程内容涉及第14章的验证支持,重点介绍了Verilog中与时间相关的系统函数和任务,如: 1. **时间获取函数**:`$time`返回64位整数时间值,`$stime`返回32位整数时间值(对大时间范围取模232),`$realtime`返回实数时间值。这些函数用于访问当前的仿真时间。 2. **时间格式化任务**:`$timeformat`允许用户自定义时间的显示格式,包括单位(ns, ps等)、精度、前导零和后缀。例如,通过设置`timescale`,可以指定时间的最小精度,并使用%t格式符控制全局时间显示。 在示例代码中,`$timeformat`被用于设置时间格式,使得仿真时间和信号状态在`$display`系统任务中以易于理解的方式输出。通过这个例子,用户可以看到如何将仿真时间精确到纳秒级别,并控制输出的格式。 这部分课程内容深入浅出地讲解了如何在Verilog设计验证过程中利用矢量文件和时间相关系统函数,帮助学生理解和掌握如何有效地进行电路行为的模拟和调试。这对于从事硬件设计和验证的工程师来说是非常实用的技能。