您好,欢迎访问三七文档
SoC设计方法与实现第十五章课程设计郭炜魏继增郭筝谢憬内容大纲•基于ESL设计方法的Motion-JPEG视频解码器设计•基于ARM7TDMI处理器的SoC设计•项目进度管理内容大纲•基于ESL设计方法的Motion-JPEG视频解码器设计•基于ARM7TDMI处理器的SoC设计•项目进度管理实验总体目标•以Motion-JPEG(MJPEG)视频解码算法为应用范例,借助SoCLib建模仿真平台,通过ESL设计方法,了解并掌握多核SoC(MPSoC,Multi-processorSoC)的系统结构设计与软件设计方法实验内容与学时安排•实验1构建基于SoCLib的单核SoC了解SoCLib电子系统级仿真平台学会如何在SoCLib平台上添加新的硬件模块编写简单C程序验证所添加的模块的正确性在所构建的单核SoC上实现串行MJPEG解码应用,验证所搭建的SoC的正确性•实验2构建基于SoCLib的MPSoC在单核SoC系统结构之上添加若干处理器构成MPSoC了解基于MPSoC的并行应用设计需求完成MJPEG解码的并行程序设计,移植到MPSoC之上,验证MPSoC的正确性修改MPSoC中的各种系统参数,比较在不同配置下并行MJPEG的运行性能实验内容与学时安排•实验3系统软件开发-嵌入式操作系统及设备驱动设计了解SoC的软件开发流程掌握简单的嵌入式操作系统的工作原理及设备驱动设计方法编写帧缓存(framebuffer)的设备驱动程序通过MJPEG应用验证所编写的驱动程序的正确性•实验4面向MJPEG解码的MPSoC系统结构的优化添加DMA模块编写IDCT硬件模块的ESL高抽象层次模型,集成到MPSoC之上编写IDCT设备驱动通过MJPEG应用验证所优化的MPSoC的正确性实验准备工作•实验环境Ubuntu9.04•实验平台SoCLibESL仿真平台•SoCLib是一个由法国TIMALab、Lip6等研究机构与STMicrelectronics等知名企业联合开发的、用于多核SoC系统结构设计的ESL建模仿真平台。•SoCLib平台提供了丰富的用于SoC开发所需的硬件IP模块的高抽象层次模型库。•SoCLib平台所提供的硬件IP模块均具有两种抽象层次模型,CABA(CycleAccurateBitAccurate)模型和TLM-DT(TransactionLevelModelingwithDistributedTime)模型。•SoCLib平台所提供的各种IP模块的高抽象层次模型均采用VISA组织的IP标准化接口VCI进行封装•SoCLib平台所提供的所有模型及工具均遵循LGPL开源协议,设计者可免费获取并根据设计需求对其进行修改、裁剪与扩充。Motion-JPEG解码流程实验1构建基于SoCLib的单核SoC•利用实验平台所提供的一个最基本的单核SoC熟悉SoCLib的工作原理。该单核SoC硬件平台由一个MIPSR3000处理器、一个存储器及一个显示终端TTY组成。这些硬件设备通过片上网络GMN进行互连。•该基本单核SoC基于SoCLib实现的顶层文件top.cpp位于/projet_soc/TP/TP0/HW下。要仔细阅读该顶层文件,了解如何通过该文件利用SoCLib所提供的各种ESL模型组件搭建SoC验证平台,如何定义声明各种设备模块以及各设备模块之间如何连接。•在熟悉SoCLib工作原理和顶层文件top.cpp的组织形式后,添加定时器VCI_TIMER、文件系统VCI_FDACCESS、帧缓存VCI_FRAMEBUFFER及同步锁VCI_LOCKS等设备模块,实验1构建基于SoCLib的单核SoC单核SoC硬件平台实验1构建基于SoCLib的单核SoC•编写简单的C语言程序,控制所添加的各种设备模块的功能,以验证SoC系统各设备工作的正确性。•对位于/projet_soc/TP/TP0/SW/mjpeg_seq文件夹下的MJPEG串行程序使用MIPS交叉编译器进行编译,移植到单核SoCLib平台之上。•熟悉MJEPG的算法流程,思考该算法任务的并行性,通过仿真统计各子程序所用的时间,考虑如何进行系统结构改进及软/硬件划分。建议利用TIMER模块,统计MJPEG串行程序每部分在MIPS3000上运行所需要的时间。MotionJPEG运行示意图实验2构建基于SoCLib的MPSoC•在描述的单核SoC的顶层top.cpp文件中,参考MIPS处理器的声明定义方法,再分别添加1~5个MIPS处理器,构成MPSoC。双MIPS核SoC硬件平台实验2构建基于SoCLib的MPSoC•/project_soc/TP/TP1/SW/mjpeg_mpro文件夹复制到工程目录下,该文件夹中包含了并行化后的MJPEG应用程序。MJPEG并行程序按下图方式进行任务划分,并行处理。学习该文件夹中的内容,掌握如何将一个串行的任务并行化,如何采用PosixPthread多线程编程接口进行并行程序设计,嵌入式操作系统如何将多线程的任务划分到不同处理器进行计算MJPEG解码任务的并行化分实验2构建基于SoCLib的MPSoC•修改顶层top.cpp文件,配置不同的MIPS处理器数目。根据处理器数目修改/project_soc/TP/TP1/SW/mjpeg_mpro路径下的ldscript/mips、headers/fetch.h、headers/mjpeg.h、sources/dispatch.c文件中的内容。分析随着处理器数目的变化MJPEG解码应用性能的改变趋势,并总结出现这种变化趋势的原因。实验2构建基于SoCLib的MPSoC•修改顶层top.cpp文件中GMN与Cache的配置参数。GMN和Cache的参数设置实验3嵌入式操作系统及设备驱动设计•设备驱动程序的框架位于/projet_soc/TP/TP2/SW/driver文件夹下,嵌入式操作系统DNA的源程序位于/projet_soc/PLATFORM/SW_PLATFOMR/APES/system/ksp/os/dna文件夹下。•深入理解嵌入式操作系统DNA的层次结构与工作原理。DNA是4层结构,从上到下依次为:应用层、C运行库层、操作系统层、硬件抽象层。应用层使用C运行库层提供的API编写应用程序,C运行库层使用操作系统层提供的API来访问系统的功能,操作系统层通过硬件抽象层HAL提供的API直接访问处理器及其他外设模块。实验3嵌入式操作系统及设备驱动设计嵌入式操作系统DNA层次结构实验3嵌入式操作系统及设备驱动设计•掌握DNA操作系统的设备驱动程序设计方法。•实现设备驱动管理接口后,还需要实现DNA操作系统的设备控制(ControlInterface)接口。open:应用程序通过fopen函数调用该函数,打开设备文件read:应用程序通过fread函数调用该函数,访问设备文件,从该设备文件中读取相关数据write:应用程序通过fwrite函数调用该函数,将相关数据写入到设备文件实验3嵌入式操作系统及设备驱动设计•制设备驱动程序框架到工程目录下,编写帧缓存framebuffer的驱动程序,然后将对该设备引用注册到ldscript链接脚本中,将其与MJPEG应用程序一起编译得到可执行文件,验证设备驱动的正确性。实验4面向MJPEG解码的MPSoC系统优化•通过前面实验可以注意到即使采用MPSoC仍然无法实现实时解码,分析算法可以得出如下结论:IDCT是MJPEG解码任务的计算瓶颈,占据了大部分解码时间,是导致MJPEG无法实时解码的主要原因解码完成的视频数据需要由处理器搬运到framebuffer,即处理器不但要负责MJPEG的解码计算任务,还要负责结果数据搬运,负担过重解决办法是优化MPSoC系统结构。设计IDCT专用硬件模块,加快计算速度;添加DMA模块,由DMA负责结果数据的搬运,进一步减轻处理器的任务,使其专注于MJPEG的解码实验4面向MJPEG解码的MPSoC系统优化优化后的MPSoC系统结构实验4面向MJPEG解码的MPSoC系统优化•在MPSoC的顶层文件top.cpp中添加DMA模块•设计专用硬件模块IDCT的ESL高抽象层次模型——VCI_IDCT。在MJEPG解码中,IDCT采用了Loëffler’s算法,该算法仅使用14次乘法操作和26次加法操作即可完成8个点的一维IDCT计算任务Loëffler’s算法实验4面向MJPEG解码的MPSoC系统优化•根据实验3中提到的步骤方法,设计IDCT的设备驱动程序,编写简单的C程序进行测试•根据MPSoC系统结构,修改MJPEG解码程序并进行移植,验证在该系统结构下是否可完成实时解码的任务内容大纲•基于ESL设计方法的Motion-JPEG视频解码器设计•基于ARM7TDMI处理器的SoC设计•项目进度管理任务目标•本实验的目的主要是增强对SoC设计的理解,并熟悉SoC的设计流程、RTL编码格式和EDA工具的使用,并完成一个集成部分基本外设功能单元的SoC设计方案。•同学们将被编成不同的小组来完成这个SoC设计中的不同的子项目。通过这个项目,希望能增加团队合作精神,提高沟通能力。设计参考建议使用的EDA工具基本SoC设计方案基于ARM7TDMISoC设计的基本结构图基本SoC设计方案基于AHB协议的总线架构图功能模块•时钟管理模块•ARM7TDMICore•AHBController(AHBC)•测试接口控制器(TIC)•DMA•外部存储器控制器(MEMC)•片内SRAM及其控制器实验要求•按照系统设计方案,完成各模块的定义、设计、验证,完成各模块的设计文档•完成SoC系统集成和系统级验证,形成验证脚本•完成SoC芯片的后端设计流程,生成基本可供流片的版图文件内容大纲•基于ESL设计方法的Motion-JPEG视频解码器设计•基于ARM7TDMI处理器的SoC设计•项目进度管理项目任务与进度阶段进度的管理——调研阶段(Pre-study)•任务系统定义初步架构设计及资源要求估计风险及成本分析•产出对项目时间及资源要求的估计对硅片面积的估计对产品成本的估计初步的架构设计明确项目设计的目标,可交付使用的时间及设计过程中的重要阶段初步选择设计方法及使用的工具进度的管理——顶级设计规范•任务写出功能要求方面的参数规范提出多个供选择的架构设计方案确定芯片的架构产生架构设计文档确定关键的模块确定可能使用的第三方IP确定设计方法、工具及设计流程估计硅片的面积、引脚、成本、功耗等•产出讨论并确定功能要求方面的设计规范讨论并确定顶级架构设计的文档讨论并确定初步的计划及资源要求进度的管理——模块级设计规范•任务将架构分解为较低等级的模块完成模块功能及接口的设计文档回顾项目计划及顶级架构设计文档制定团队的相应设计规范•系统管理者的任务更新项目计划,给各模块的设计任务分配资源考虑芯片评估和验证的相关问题定义高质量的工程框架结构,能够方便的说明需要在何处存放信息,以及如何进行更新•产出全部模块的设计规范精确可用的项目计划进度的管理——模块级设计•项目管理者的任务同组员一起确定一个高质量的框架结构保持每周进行的项目会议,给予持续不断、密切的关注协商生成测试向量的方法及所要求的测试覆盖率预定原型及芯片测试所需的资源获得第三方的仿真模型•产出完成全部模块的代码编写和验证各模块进行初步的综合(对于数字电路设计而言)提供后端设计所需的网表和时序信息进度的管理——模块级设计•步骤详细的设计规范模块设计编写代码仿真综合进度的管理——顶层集成及仿真•任务集成模块、输入/输出(I/O)产生测试向量(testpatterns)运行门级仿真创建综合脚本及网表文件创建版图布局规划(FloorPlan)•产出整个芯片的RTL代码初步综合得到可用的网表及时序约束条件完成全部RTL的仿真进度的管理——后端设计•任务综合及时序分析生
本文标题:SoC设计第15章
链接地址:https://www.777doc.com/doc-2859341 .html