可编程逻辑系统设计与FPGA技术  080903M05002H

学期:2020—2021学年(春)第二学期 | 课程属性:专业普及课 | 任课教师:杨海钢
授课时间: 星期一,第5、6、7 节
授课地点: 教一楼107
授课周次: 1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、18、19
课程编号: 080903M05002H 课时: 50 学分: 3.00
课程属性: 专业普及课 主讲教师:杨海钢 助教:涂开辉,贾一平
英文名称: Design of Programmable Logic System Based on FPGA Technology 召集人:

教学目的、要求

本课程为微电子学与固体电子学研究生的专业普及课。电路与系统,信号与信息处理,计算机技术,计算机应用技术,集成电路工程等专业研究生均可选修。本课程深入介绍了FPGA(Field Programmable Gate Array)的基本结构,包括同质的逻辑簇、互连以及异质的块存储器、数字信号处理模块、锁相环等, 以及将用户设计借助CAD(Computer Aided Design)在FPGA芯片上实现的过程,包括综合、布局、布线、码流生成等。 在课程最后,对未来FPGA技术的发展趋势进行了探讨和展望。

预修课程

数字电路,可编程逻辑器件

教 材

《Architecture and CAD for Deep-submicron FPGAs》
《深亚微米FPGA结构与CAD设计》

主要内容

第一章	引言
介绍可编程逻辑器件的发展过程以及FPGA和其他计算芯片,如CPU、DSP等的结构特性区别。另外,列举了FPGA凭借其细粒度并行计算特性,在一些主流领域的应用,例如互联网、计算加速、通信等。
第二章	FPGA的结构原理
介绍FPGA的可编程原理以及组成部分,包括逻辑块、逻辑单元、互连开关盒以及输入输出模块等。简要说明了FPGA CAD流程,即基准电路经由计算机辅助工具通过综合、布局、布线、码流生成等步骤后在FPGA上编程实现的过程。 
第三章	FPGA的逻辑块结构
本章首先介绍不同的可编程逻辑电路结构,包括基于与非门、基于多路选择器以及基于查找表的结构。然后介绍逻辑块的设计以及主流的逻辑块电路结构。还讨论了对逻辑块结构进行评估的设计方法。最后,介绍逻辑块的可编程原理以及不同的编程技术。
第四章	FPGA的互连结构
本章首先介绍不同的可编程互连结构,描述了互连结构中不同的结构参数对FPGA的性能、面积、功耗的影响,然后介绍用于评估互连结构的实验流程,最后介绍了FPGA时钟网络中的互连。
第五章	FPGA CAD:综合
本章描述了经典FPGA CAD流程的第一步:综合。此步骤是整个流程中最为复杂的过程,总体可以分为四个部分:首先介绍的高层次综合将C++等高级语言转化为HDL,然后逻辑综合将HDL转化为门级网表,再通过映射将门级网表转化为FPGA内部逻辑单元,最后将逻辑单元装箱形成逻辑簇。
第六章	FPGA CAD:布局
本章描述了基于逻辑单元/簇的布局原理。布局是将综合后的电路网表分配到FPGA器件中合适的位置上去,同时在此过程中实现优化电路速度和面积的目的。此过程借助计算机算法进行,主流的算法包括模拟退火算法以及解析算法,本章着重介绍了学术界关于两种算法的主流研究成果。
第七章	FPGA CAD:布线
本章将介绍在FPGA芯片中布线资源图(RRG)以及布线搜索算法的工作原理。布线过程通过打通互连开关,将位置已分配好的FPGA器件资源用通路连接起来,实现电路功能。此过程借助计算机算法进行,同时对电路的布通率、延时等目标进行优化。本章着重介绍了学术界关于布通率驱动以及时序驱动算法的研究,以及在布线搜索时选择性部分扩展RRG用以提高布线效率,节省内存消耗的方法。
第八章	FPGA研究发展趋势
本章首先总结介绍了目前主流FPGA设计面临的技术挑战,包括时序、功耗、集成度等方面,接着介绍了在解决上述问题时,FPGA技术的进一步发展技术路线和趋势,包括非易失性新型FPGA,3D集成FPGA,面向人工智能应用的类脑FPGA等。

参考文献

《Advanced Digital Design with the Verilog HDL》
《Verilog HDL高级数字设计》