2.实数,不可综合 3.字符串,不可综合 合法的Verilog标识符,区分大小写 13.2数据类型 net网线类型、register寄存器类型、存储器类型 13.3操作符 位操作符与逻辑操作符(&|~&&1!) 按操作数个数对操作符的分类:单目、双目、三目 缩位运算符的操作规则 注意区分regN-l:0]arrayl和reg array1 [N-l:0] 13.4常用语句补充 Initial语句特点及其作用 Forever语句特点及其作用 条件编译语句 文件包含语句 任务和函数 13.5用库元件实现结构描述 Verilog共定义了26个基本元件 第14章TestBench仿真介绍 教学目的:了解Testbench在整个设计中的地位与作用,掌握典型Testbench 语句的书写。 教学基本要求:学习完本章知识后,学生应该具备简单的Testbench设计和 波形仿真能力。 教学内容:TestBench的目标、TestBench的基本框架、产生激励的主要方法、 基于ModelSim的设计仿真。 教学提示:TestBench与传统软件测试的区别。 学法指导:典型设计的TestBench代码比设计本身更为复杂,要求学生认识 到Testbench的重要性,学会利用initial、always、repeat等语句产生合适的激励 信号。 27
27 2. 实数,不可综合 3. 字符串,不可综合 合法的 Verilog 标识符,区分大小写 13.2 数据类型 net 网线类型、register 寄存器类型、存储器类型 13.3 操作符 位操作符与逻辑操作符(& | ~ && || !) 按操作数个数对操作符的分类:单目、双目、三目 缩位运算符的操作规则 注意区分 reg [N-1:0] array1 和 reg array1 [N-1:0] 13.4 常用语句补充 Initial 语句特点及其作用 Forever 语句特点及其作用 条件编译语句 文件包含语句 任务和函数 13.5 用库元件实现结构描述 Verilog 共定义了 26 个基本元件 第 14 章 TestBench 仿真介绍 教学目的:了解 Testbench 在整个设计中的地位与作用,掌握典型 Testbench 语句的书写。 教学基本要求:学习完本章知识后,学生应该具备简单的 Testbench 设计和 波形仿真能力。 教学内容:TestBench 的目标、TestBench 的基本框架、产生激励的主要方法、 基于 ModelSim 的设计仿真。 教学提示:TestBench 与传统软件测试的区别。 学法指导:典型设计的 TestBench 代码比设计本身更为复杂,要求学生认识 到 Testbench 的重要性,学会利用 initial、always、repeat 等语句产生合适的激励 信号
作业:完成具有8位随机数产生的数据激励模块编写,工作时钟为50Mz。 小结:Testbench在实际应用中地位极为重要,但受限于教学篇幅以及本科 生的学习层次,这里只能是尽量简化,但要让学生建立起Testbench的完整概念, 并学会ModelSim下的波形仿真。 该章教材PPT并未采用教材的小节分配,而是从实际工程需求出发,逐步引 入TestBench的概念及其组成要求,一些教材上介绍的知识点并不符合工程化理 念,故要求学生在学习该章节时以PPT课件为主。 详细大纲 l.Verilog仿真流程 功能仿真 针对L级可综合代码开展,主要验证代码功能是否正确 不包含电路延时信息 2.TestBench的目标 3.TestBench的基本框架 4.基于TestBench的HDL代码调试 5.产生激励的主要方法 )由硬件模型产生待验证模块所需的输入激励码(代价高): b)用HDL代码直接生成激励(最常用,适合中小系统): ©)事先产生所需的输入激励码并存于相应的文件中,使用时从文件中 读取(适合复杂系统) 6.用HDL代码生成DUT的输入激励 第6、7章EDA工具应用深入及LPM宏模块的应用 教学目的:进一步提高学生的QuartusⅡ应用水平,学会常用的IP核定制及 生成。 教学基本要求:了解SignalTap的用途及工作原理、学会Mega Wizard仿真库 编译及常用P核的使用。 教学内容:SignalTap IⅡ原理及应用、,嵌入式逻辑分析仪使用方法,MegaWizard IPCore核的使用、ModelSim下Mega Core的仿真。 教学提示:提醒学生注意SignalTapII与传统的逻辑分析仪的特点
28 作业:完成具有 8 位随机数产生的数据激励模块编写,工作时钟为 50MHz。 小结:Testbench 在实际应用中地位极为重要,但受限于教学篇幅以及本科 生的学习层次,这里只能是尽量简化,但要让学生建立起 Testbench 的完整概念, 并学会 ModelSim 下的波形仿真。 该章教材 PPT 并未采用教材的小节分配,而是从实际工程需求出发,逐步引 入 TestBench 的概念及其组成要求,一些教材上介绍的知识点并不符合工程化理 念,故要求学生在学习该章节时以 PPT 课件为主。 详细大纲 1. Verilog 仿真流程 功能仿真 针对 RTL 级可综合代码开展,主要验证代码功能是否正确 不包含电路延时信息 2. TestBench 的目标 3. TestBench 的基本框架 4. 基于 TestBench 的 HDL 代码调试 5. 产生激励的主要方法 a) 由硬件模型产生待验证模块所需的输入激励码(代价高); b) 用 HDL 代码直接生成激励(最常用,适合中小系统); c) 事先产生所需的输入激励码并存于相应的文件中,使用时从文件中 读取(适合复杂系统) 6. 用 HDL 代码生成 DUT 的输入激励 第 6、7 章 EDA 工具应用深入及 LPM 宏模块的应用 教学目的:进一步提高学生的 Quartus II 应用水平,学会常用的 IP 核定制及 生成。 教学基本要求:了解 SignalTap 的用途及工作原理、学会 MegaWizard 仿真库 编译及常用 IP 核的使用。 教学内容:SignalTap II 原理及应用、嵌入式逻辑分析仪使用方法、MegaWizard IP Core 核的使用、ModelSim 下 Mega Core 的仿真。 教学提示:提醒学生注意 SignalTapII 与传统的逻辑分析仪的特点
学法指导:通过演示操作使学生了解SignalTaplI的用法。 作业:自行编译QuestaSim下QuartusⅡ仿真库文件。 小结:这一章主要是以实践操作为主,没有Verilog语法知识,因此要求学 生多练习,课堂讲解也以演示操作为主,启动互动为辅助。 详细大纲 1 SignalTa即IⅡ原理及应用 传统意义上,可逻辑逻辑器件的硬件电路级调试手段是逻辑分析仪,但它只 能从器件引脚处观测信号的变化情况,随着逻辑设计复杂性的不断增加,可编程 逻辑器件的调试难度急剧上升,而且现在主流FPGA基本均采用了BGA封装, 除非专门在PCB板上留有专用观测焊点,否则无法使用逻辑分析仪抓捕信号。 另一方面,专业的逻辑分析仪价格昂贵,从数十万到数百万RMB不等,这 也限制了逻辑分析仪的大规模应用。 在线逻辑分析仪 原理 利用FPGA某一内部时钟作为触发时钟,并使用片内RAM作为信号缓存, 在符合触发条件时,通过TG端口将捕捉到的信号数据上传至电脑端进行详细 分析。 典型产品 Altera:SignalTap II Xilinx:Chipscope Pro Lattice:Reveal 优点 价格低廉(随FPGA开发工具集成,只需数千美元): 只需使用器件内部的存储器作为信号缓存,典型记录长度可达65536点以上, 满足绝大多数系统需要: 无需占用器件10端口,支持触发变量数量多且可灵活修改,一般可达200 条以上。 缺点 使用在线逻辑分析仪会占用芯片逻辑及存储资源,在资源紧张或低档芯片场
29 学法指导:通过演示操作使学生了解 SignalTapII 的用法。 作业:自行编译 QuestaSim 下 Quartus II 仿真库文件。 小结:这一章主要是以实践操作为主,没有 Verilog 语法知识,因此要求学 生多练习,课堂讲解也以演示操作为主,启动互动为辅助。 详细大纲 1 SignalTap II 原理及应用 传统意义上,可逻辑逻辑器件的硬件电路级调试手段是逻辑分析仪,但它只 能从器件引脚处观测信号的变化情况,随着逻辑设计复杂性的不断增加,可编程 逻辑器件的调试难度急剧上升,而且现在主流 FPGA 基本均采用了 BGA 封装, 除非专门在 PCB 板上留有专用观测焊点,否则无法使用逻辑分析仪抓捕信号。 另一方面,专业的逻辑分析仪价格昂贵,从数十万到数百万 RMB 不等,这 也限制了逻辑分析仪的大规模应用。 在线逻辑分析仪 原理 利用 FPGA 某一内部时钟作为触发时钟,并使用片内 RAM 作为信号缓存, 在符合触发条件时,通过 JTAG 端口将捕捉到的信号数据上传至电脑端进行详细 分析。 典型产品 Altera:SignalTap II Xilinx:Chipscope Pro Lattice:Reveal 优点 价格低廉(随 FPGA 开发工具集成,只需数千美元); 只需使用器件内部的存储器作为信号缓存,典型记录长度可达65536点以上, 满足绝大多数系统需要; 无需占用器件 IO 端口,支持触发变量数量多且可灵活修改,一般可达 200 条以上。 缺点 使用在线逻辑分析仪会占用芯片逻辑及存储资源,在资源紧张或低档芯片场
合下不适用: 触发深度无法与专业逻辑分析仪相比,不适用于超长时间记录 触发频率受设计工程及芯片自身限制,一般很难超过200MHz,超高速场合 下观测能力有限。 Signal Ta即本质是使用高速时钟采样记录待观测信号,因此必须保证工作时 钟频率高于信号的变化频率: 应合理设置触发信号数量及触发深度,数量过多或深度过大都会耗费大量资 源,且影响整个工程的最高工作频率: 在调试完成后,应及时别除工程中的Signal Ta即文件,并重新编译工程,确 保获得最好的资源时序性能。 2嵌入式逻辑分析仪使用方法 1)在Quartus中打开待调试工程,然后点击Filenew,选择Signal TapⅡLogic Analyzer File 2)打开SignalTapⅡ编辑窗口,修改Instance实例化名字 3)双击光标所在位置,加入待观测信号 4)SignalTap IⅡ工作时钟设置 5)SignalTap IⅡ捕捉条件设置(BASIC模式) 6)保存SignalTap子工程信息,返回Quartus,重新编译工程 7)编译下载,既可通过Programmer下载sof文件,也可直接通过SignalTap 下载 8)启动SignalTa即Ⅱ进行采样与分析 3 MegaWizard IP Core核的使用 MegaWizard工具是Altera提供的参数可设置IP核生成工具,包括算术类、 通信类、数字信号处理类、组合逻辑类、输入输出端口类、高速接口类、JTAG 调试类、存储器及寄存器类等大量免费收费P核。合理使用P核可大大减轻开 发编程压力,同时代码质量及性能也比较有保障。 常用P核: 乘法(累加)器:完成硬件乘法器或乘累加器(MAC),数字信号处理中应用 极为频繁
30 合下不适用; 触发深度无法与专业逻辑分析仪相比,不适用于超长时间记录; 触发频率受设计工程及芯片自身限制,一般很难超过 200MHz,超高速场合 下观测能力有限。 SignalTap 本质是使用高速时钟采样记录待观测信号,因此必须保证工作时 钟频率高于信号的变化频率; 应合理设置触发信号数量及触发深度,数量过多或深度过大都会耗费大量资 源,且影响整个工程的最高工作频率; 在调试完成后,应及时删除工程中的 SignalTap 文件,并重新编译工程,确 保获得最好的资源/时序性能。 2 嵌入式逻辑分析仪使用方法 1) 在 Quartus 中打开待调试工程,然后点击 File|new,选择 SignalTap II Logic Analyzer File 2) 打开 SignalTap II 编辑窗口,修改 Instance 实例化名字 3) 双击光标所在位置,加入待观测信号 4) SignalTap II 工作时钟设置 5) SignalTap II 捕捉条件设置(BASIC 模式) 6) 保存 SignalTap 子工程信息,返回 Quartus II,重新编译工程 7) 编译下载,既可通过 Programmer 下载 sof 文件,也可直接通过 SignalTap 下载 8) 启动 SignalTap II 进行采样与分析 3 MegaWizard IP Core 核的使用 MegaWizard 工具是 Altera 提供的参数可设置 IP 核生成工具,包括算术类、 通信类、数字信号处理类、组合逻辑类、输入输出端口类、高速接口类、JTAG 调试类、存储器及寄存器类等大量免费/收费 IP 核。合理使用 IP 核可大大减轻开 发编程压力,同时代码质量及性能也比较有保障。 常用 IP 核: 乘法(累加)器:完成硬件乘法器或乘累加器(MAC),数字信号处理中应用 极为频繁;
存储器(RAM/ROM):最常用的IP组件之一,用于大容量数据存储缓冲、 跨时钟域交换等: FIFO:常用于数据缓冲、数据速率转换、读写时钟分离的异步FFO多用于 解决跨时钟域数据同步: 时钟管理模块PLL:用于完成时钟信号再生、整形、倍频、分频等处理: FIR数字滤波器:数字信号处理中最常用组件,实现数字域滤波。 4 ModelSim下Mega Core的仿真 对含有Mega Core源文件的设计工程,如果要进行功能或时序仿真,均需要 事先编译Altera公司的产品库,否则仿真软件无别识别Mega Core源文件,同样 地,如果使用Xiix公司的FPGA,也需要编译Xilinx IP库, QuestSim与ModelSim编译步骤完全相同。 为确保每次打开ModelSim时自动加载Altera库,可打开modelsim.ini文件, 确认是否有相关语句,确认完毕后恢复该文件的只读属性。 (七)课程有关说明 本大纲重点加强了Verilog实用化设计以及相关应用的内容。本课程的必备 先修课程为数字电子技术课程。同时本课程与信号与系统、通信原理电路等课程 也有一定关系。执行本大纲要注意Verilog语法讲解与应用实例讲解的有机结合。 Verilog的代码风格是本大纲新引入的内容,也是学习的重点和难点。目前,国 内的主流EDA教材对HDL代码风格重视程度明显不够,多数教材甚至直接缺 失该部分内容。这导致许多学生虽然学习了FPGA课程,但在工作后从事FPGA 开发时代码书写混乱,几乎没有可维护性,并不能真正完成具有工程实用性的 FPGA设计。而代码风格上的要求恰恰是目前FPGA课堂教学最为欠缺的。本课 程教学采用多媒体教学,考核方式为开放设计实验、撰写学术报告等。 (八)主要教学方法与媒体要求 本课程教学采用多媒体教学,需要多媒体计算机和投影机等相关设备。 EDA技术发展快,涉及面广、实践性强,对教师和学生的要求较高。掌握 EDA技术,提高解决实际工程问题的能力需要一个不断积累、不断探索的过程。 在EDA技术教学方法上逐步进行革新,改变过去以教师为中心、以课堂讲授为 主、以传授知识为基本目的的传统教学模式,而采用教师讲授与学生实践相结合, 31
31 存储器(RAM/ROM):最常用的 IP 组件之一,用于大容量数据存储/缓冲、 跨时钟域交换等; FIFO:常用于数据缓冲、数据速率转换、读写时钟分离的异步 FIFO 多用于 解决跨时钟域数据同步; 时钟管理模块 PLL:用于完成时钟信号再生、整形、倍频、分频等处理; FIR 数字滤波器:数字信号处理中最常用组件,实现数字域滤波。 4 ModelSim 下 Mega Core 的仿真 对含有 Mega Core 源文件的设计工程,如果要进行功能或时序仿真,均需要 事先编译 Altera 公司的产品库,否则仿真软件无别识别 Mega Core 源文件,同样 地,如果使用 Xilinx 公司的 FPGA,也需要编译 Xilinx IP 库。 QuestSim 与 ModelSim 编译步骤完全相同。 为确保每次打开 ModelSim 时自动加载 Altera 库,可打开 modelsim.ini 文件, 确认是否有相关语句,确认完毕后恢复该文件的只读属性。 (七)课程有关说明 本大纲重点加强了 Verilog 实用化设计以及相关应用的内容。本课程的必备 先修课程为数字电子技术课程。同时本课程与信号与系统、通信原理电路等课程 也有一定关系。执行本大纲要注意 Verilog 语法讲解与应用实例讲解的有机结合。 Verilog 的代码风格是本大纲新引入的内容,也是学习的重点和难点。目前,国 内的主流 EDA 教材对 HDL 代码风格重视程度明显不够,多数教材甚至直接缺 失该部分内容。这导致许多学生虽然学习了 FPGA 课程,但在工作后从事 FPGA 开发时代码书写混乱,几乎没有可维护性,并不能真正完成具有工程实用性的 FPGA 设计。而代码风格上的要求恰恰是目前 FPGA 课堂教学最为欠缺的。本课 程教学采用多媒体教学,考核方式为开放设计实验、撰写学术报告等。 (八)主要教学方法与媒体要求 本课程教学采用多媒体教学,需要多媒体计算机和投影机等相关设备。 EDA 技术发展快,涉及面广、实践性强,对教师和学生的要求较高。掌握 EDA 技术,提高解决实际工程问题的能力需要一个不断积累、不断探索的过程。 在 EDA 技术教学方法上逐步进行革新,改变过去以教师为中心、以课堂讲授为 主、以传授知识为基本目的的传统教学模式,而采用教师讲授与学生实践相结合