教学目的:理解常用的系统优化手段 教学基本要求:了解资源共享、逻辑优化、串行化等资源优化手段的原理及 应用,掌握流水线技术的工作原理。 教学内容:资源优化、速度优化。 教学提示:由于并发执行语句的存在,HDL语言在可读性上明显逊色于各 类软件高级编程语言,而且代码量普遍很大,即使是一些中小规模HDL设计, 其代码也通常都在数千行甚至上万行,再加上后期的功能升级等要求,均对HDL 代码的可读性、可维护性提出了更高要求。因此学生必须注意提高自己的代码阅 读能力。 学法指导:针对同一设计要求,自行编写不同实现方式对应的Verilog代码, 并比较优劣,给出自己的结论。 作业:为什么流水线技术能有效提高工作速度?其缺陷是什么? 小结:这一章内容重点针对资源优化与速率优化2大方面展开,尤其是流水 线设计,是该章的重点,学生可以通过生活实例感知到流水线的优点,并推广至 EDA领域。 详细大纲 9.1资源优化 主要介绍三种常用的资源优化手段,重点使学生理解其工作原理。 9.1.1资源共享 注意不要盲目使用资源共享的策略优化。 重点是区分常系数乘法器与变系数乘法器 9.2速度优化 从福特公司生产的T型车引入工业流水线的概念,然后将其扩展至PGA设 计中,并通过加法器设计实例实现流水线加法器。 插入一级流水线可使最高工作频率提高一倍左右。 第10章Verilog状态机设计技术 教学目的:理解状态机的理念、优势,学会用Verilog设计同步状态机 教学基本要求:通过状态机设计实例讲解使学生掌握简单的状态机设计流 程,并进一步提高代码风格的规范性。 23
23 教学目的:理解常用的系统优化手段 教学基本要求:了解资源共享、逻辑优化、串行化等资源优化手段的原理及 应用,掌握流水线技术的工作原理。 教学内容:资源优化、速度优化。 教学提示:由于并发执行语句的存在,HDL 语言在可读性上明显逊色于各 类软件高级编程语言,而且代码量普遍很大,即使是一些中小规模 HDL 设计, 其代码也通常都在数千行甚至上万行,再加上后期的功能升级等要求,均对 HDL 代码的可读性、可维护性提出了更高要求。因此学生必须注意提高自己的代码阅 读能力。 学法指导:针对同一设计要求,自行编写不同实现方式对应的 Verilog 代码, 并比较优劣,给出自己的结论。 作业:为什么流水线技术能有效提高工作速度?其缺陷是什么? 小结:这一章内容重点针对资源优化与速率优化 2 大方面展开,尤其是流水 线设计,是该章的重点,学生可以通过生活实例感知到流水线的优点,并推广至 EDA 领域。 详细大纲 9.1 资源优化 主要介绍三种常用的资源优化手段,重点使学生理解其工作原理。 9.1.1 资源共享 注意不要盲目使用资源共享的策略优化。 重点是区分常系数乘法器与变系数乘法器 9.2 速度优化 从福特公司生产的 T 型车引入工业流水线的概念,然后将其扩展至 FPGA 设 计中,并通过加法器设计实例实现流水线加法器。 插入一级流水线可使最高工作频率提高一倍左右。 第 10 章 Verilog 状态机设计技术 教学目的:理解状态机的理念、优势,学会用 Verilog 设计同步状态机 教学基本要求:通过状态机设计实例讲解使学生掌握简单的状态机设计流 程,并进一步提高代码风格的规范性
教学内容:Verilog状态机的一般形式、Moore和Mealy型状态机设计、状态 机编码方式、安全状态机。 教学提示:状态机设计是反映工程师FPGA应用能力的最直接手段,学生如 果想真正掌握EDA技术,必须具备有限状态机设计能力。 学法指导:首先给出状态机设计范式,从代码风格上引导学生学会3段式状 态机书写及设计。 作业:针对红绿灯设计实例进行改写,增加LED倒计时功能。 小结:状态机设计是现代数字电路设计中最重要的设计手段,此前的简单时 序电路均可以视作是状态机的简化,状态机的功能十分强大,不亚于传统的CPU 但状态机的核心是同步时序电路,只有从电路的角度去考虑,才能理解状态机的 设计关键。本章是我们整个教材的重点,也是难点,一旦掌握了状态机设计技术, 使用Verilog完成各种系统设计都会游刃有余。 该章节教材上小节很多,但实际上只有10.1小节是重点,后续小节知识点以 学生自学为主,不再课堂统一讲解,这样不仅提高教学效率,而且有助于培养学 生自己解决问题的能力。 详细大纲 引言 状态机设计是现代数字电路设计中最重要的设计手段,此前的简单时序电路 均可以视作是状态机的简化,状态机的功能十分强大,不亚于传统的CPU。但 状态机的核心是同步时序电路,只有从电路的角度去考虑,才能理解状态机的设 计关键。 本章是我们整个教材的重点,也是难点,一旦掌握了状态机设计技术,使用 Verilog完成各种系统设计都会游刃有余,且以后的EDA实验也会以状态机设计 为主,要求学生重视该章节学习。 10.1状态机的一般形式 理论上,只要有时序电路,就有状态机(举例说明D触发器、4位计数器都 是简化状态机),但这种并非有意写出的状态机,在Verilog中,对状态机的描述 是有相对比较固定的模式的,只要掌握了这些模式,就可以很轻松地设计出各种 状态机。 34
24 教学内容:Verilog 状态机的一般形式、Moore 和 Mealy 型状态机设计、状态 机编码方式、安全状态机。 教学提示:状态机设计是反映工程师 FPGA 应用能力的最直接手段,学生如 果想真正掌握 EDA 技术,必须具备有限状态机设计能力。 学法指导:首先给出状态机设计范式,从代码风格上引导学生学会 3 段式状 态机书写及设计。 作业:针对红绿灯设计实例进行改写,增加 LED 倒计时功能。 小结:状态机设计是现代数字电路设计中最重要的设计手段,此前的简单时 序电路均可以视作是状态机的简化,状态机的功能十分强大,不亚于传统的CPU。 但状态机的核心是同步时序电路,只有从电路的角度去考虑,才能理解状态机的 设计关键。本章是我们整个教材的重点,也是难点,一旦掌握了状态机设计技术, 使用 Verilog 完成各种系统设计都会游刃有余。 该章节教材上小节很多,但实际上只有 10.1 小节是重点,后续小节知识点以 学生自学为主,不再课堂统一讲解,这样不仅提高教学效率,而且有助于培养学 生自己解决问题的能力。 详细大纲 引言 状态机设计是现代数字电路设计中最重要的设计手段,此前的简单时序电路 均可以视作是状态机的简化,状态机的功能十分强大,不亚于传统的 CPU。但 状态机的核心是同步时序电路,只有从电路的角度去考虑,才能理解状态机的设 计关键。 本章是我们整个教材的重点,也是难点,一旦掌握了状态机设计技术,使用 Verilog 完成各种系统设计都会游刃有余,且以后的 EDA 实验也会以状态机设计 为主,要求学生重视该章节学习。 10.1 状态机的一般形式 理论上,只要有时序电路,就有状态机(举例说明 D 触发器、4 位计数器都 是简化状态机),但这种并非有意写出的状态机,在 Verilog 中,对状态机的描述 是有相对比较固定的模式的,只要掌握了这些模式,就可以很轻松地设计出各种 状态机
10.11状态机的特点与优势: 状态机与CPU,这是数字电路领域中最强大的两种武器,当然后者可能名气 更大(介绍典型的CPU),但从功能上,状态机并不逊色于它,甚至许多场合下 还要优于CPU。 介绍状态机主要特点:1、借用CPU的顺序控制模型,克服硬件系统顺序方 式控制不灵活的缺点:2、EDA工具支持良好,可有效优化状态机设计,降低人 工设计难度(像一些冗余状态消除、编码选择,EDA都可以自动完成):3、采 用同步时序的状态机可有效避免竞争冒险现象,工作稳定可靠:4、性能高效, 可灵活设计多个状态机、嵌套状态机,多个状态机并行工作,处理性能远超CU (近年来火爆的多核CPU也是吸取了状态机的特色),正因为状态机的并行工作 特性,虽然其工作频率一般较低(FPGA系统一般在1OOM-20OM就已经算高速 系统),但吞吐量仍可大大超过工作频率数GHz的CPU。 10.1.2状态机的一般结构 主控时序过程、主控组合过程、以及辅助过程。 第l3章Verilog语法补充说明 教学目的:在己有的学习基础上,进一步查缺补漏,建立完整的Verilog语 法体系。 教学基本要求:掌握initial块语句用法,了解条件编译指令。 教学内容:Verilog文字规则、变量数据类型、常用语句补充、用库元件实现 结构描述。 教学提示:仍然借用C语言知识与Verilog展开多方面对比,找出异同点。 学法指导:通过典型设计代码讲解消化新的语法知识点。 作业:思考为什么库文件设计手段未能得到广泛应用。 小结:这一章知识点相对琐碎,但重点并不多,大部分属于了解范畴,只有 initi过程块应用相对广泛,要求学生掌握。 详细大纲 13.1 Verilog文字规则 常数的3种类型 1.整数,可综合
25 10.1.1 状态机的特点与优势: 状态机与 CPU,这是数字电路领域中最强大的两种武器,当然后者可能名气 更大(介绍典型的 CPU),但从功能上,状态机并不逊色于它,甚至许多场合下 还要优于 CPU。 介绍状态机主要特点:1、借用 CPU 的顺序控制模型,克服硬件系统顺序方 式控制不灵活的缺点;2、EDA 工具支持良好,可有效优化状态机设计,降低人 工设计难度(像一些冗余状态消除、编码选择,EDA 都可以自动完成);3、采 用同步时序的状态机可有效避免竞争冒险现象,工作稳定可靠;4、性能高效, 可灵活设计多个状态机、嵌套状态机,多个状态机并行工作,处理性能远超 CPU (近年来火爆的多核 CPU 也是吸取了状态机的特色),正因为状态机的并行工作 特性,虽然其工作频率一般较低(FPGA 系统一般在 100M~200M 就已经算高速 系统),但吞吐量仍可大大超过工作频率数 GHz 的 CPU。 10.1.2 状态机的一般结构 主控时序过程、主控组合过程、以及辅助过程。 第 13 章 Verilog 语法补充说明 教学目的:在已有的学习基础上,进一步查缺补漏,建立完整的 Verilog 语 法体系。 教学基本要求:掌握 initial 块语句用法,了解条件编译指令。 教学内容:Verilog 文字规则、变量数据类型、常用语句补充、用库元件实现 结构描述。 教学提示:仍然借用 C 语言知识与 Verilog 展开多方面对比,找出异同点。 学法指导:通过典型设计代码讲解消化新的语法知识点。 作业:思考为什么库文件设计手段未能得到广泛应用。 小结:这一章知识点相对琐碎,但重点并不多,大部分属于了解范畴,只有 initial 过程块应用相对广泛,要求学生掌握。 详细大纲 13.1 Verilog 文字规则 常数的 3 种类型 1. 整数,可综合
2.实数,不可综合 3.字符串,不可综合 合法的Verilog标识符,区分大小写 13.2数据类型 net网线类型、register寄存器类型、存储器类型 13.3操作符 位操作符与逻辑操作符(&|~&&) 按操作数个数对操作符的分类:单目、双目、三目 缩位运算符的操作规则 注意区分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的重要性,学会利用initia、always、.repeat等语句产生合适的激励 信号
26 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仿真流程 功能仿真 针对TL级可综合代码开展,主要验证代码功能是否正确 不包含电路延时信息 2.TestBench的目标 3.TestBench的基本框架 4.基于TestBench的HDL代码调试 5.产生激励的主要方法 )由硬件模型产生待验证模块所需的输入激励码(代价高): b)用HDL代码直接生成激励(最常用,适合中小系统): ©)事先产生所需的输入激励码并存于相应的文件中,使用时从文件中 读取(适合复杂系统) 6.用HDL代码生成DUT的输入激励 第6、7章EDA工具应用深入及LPM宏模块的应用 教学目的:进一步提高学生的QuartusⅡ应用水平,学会常用的IP核定制及 生成 教学基本要求:了解SignalTap的用途及工作原理、学会MegaWizard仿真库 编译及常用P核的使用。 教学内容:SignalTap IⅡ原理及应用、嵌入式逻辑分析仪使用方法、MegaWizard IPCore核的使用、ModelSim下Mega Core的仿真。 教学提示:提醒学生注意SignalTaplI与传统的逻辑分析仪的特点
27 作业:完成具有 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 与传统的逻辑分析仪的特点