基于SOC fpga的开发教程
SoC 芯片, 相较于传统的单一 ARM 处理器或 FPGA 芯片, Intel Cyclone V SoCFPGA 既拥有了 ARM 处理器灵活高效的数据运算和事务处理能力, 同时又集成了 FPGA 的高速并行处理优势, 同时, 基于两者独特的片上互联结构, 使用时可以将 FPGA 上的通用逻辑资源经过配置,映射为 ARM 处理器的一个或多个具有特定功能的外设。目录目录基于 Cyclone V SoC FPGA的嵌入式系统设计教程.1ntel Cyclone SoC FPGA介绍SOC FPGA的基木概念soPC的基本概念SoPC与 SOC FPgA之间的差异SOC FPGA架构的优势基于 Cyclone V SoC FPGA器件的重要电路设计FPGA IO和时钟SOC FPGA JTAG电路设计569AC501SoC开发板介绍11布局及组件11轻触按键用户LED……14时钟输入....::.::::::.:::∴15GP|O接∏15DDR3 SDRAM重着::::::....:::...通用显示扩展接口USB to uart∴………以太网收发器,21SOC EPGA开发板的FPGA配置数据下载和固化…….…SOC FPGA启动配置方式介绍∴23sof文件烧写方式.24JC文件生成和烧写26SOC FPGA开发流程简介31SOCEPGA开发流程使件开发.31软什开发AC501 SOC FPGA开发板黄金参考设计说明34什么是GHRD…34GHRD FOR AC501-SoC34打开和查看GHRD.…34clk o38sysid qsys39led_pio...,.,…,…………39button pIospIi2c 042alt vip vfr tft0.......……………42alt vip itc_ 044总结Step by step为HPS添加UART外设,45目录修改GHRD工程打开GHRD工程45添加 UART IP.246关于HPS与FPGA数据交互连接UART|P信号端口分配组件基地址…49生成Qsys系统的HDL文件50添加uat_1的端口到 Quartus工程中51分配FPGA管脚生成配置数据二进制文件54制作 Preloader Image打开 SOCEDS工具生成bsp文件56编译 preloader和 uboot60更新 preloader和 uboot62使用新的 Uboot启动SoC.:::::::::::·::·制作设备树设备树制作流程...64准备所需文件65生成dts文件…生成dtb文件.…67运行修改后的工程.68使用Ds-5编写和调试SoC的 Linux应用程序,,,…70启动DS-5创建C工程…72编详工程.176建立SSH远程连接77创建远程连接复制文件到目标板3运行应用程序85远程调试…GDB设置GDB连接和调试287总结使用 Win sCp在 Windows和 Linux系统之间传输文件……91为什么要使用 Winscp.安装 Win SCP.…91建立远程主机连接91新建远程连接.94调用 putty终端基丁虚拟地址映射的 Linux硬件编程....….….97什么是虚拟地址映射97虚拟地址映射的实现:::::::::.:a·基于虚拟地址映射的PIO编程应用目录P|O外设的虚拟地址映射…在DS-5中建立PO应用工程.102添加和包含HPS库文件.103添加FPGA侧外设硬件信息P|O|P核介绍108Po核寄存器映射110P|O|P核应用实例..112合理的程序退出机制.…116关于按键消抖.基于虚拟地址映射的UART编程应用…..119UART(RS232 Serial port)核介绍UART(RS-232 Serial port)寄存器映射UART|P核应用实例……122在DS-5中建立UART应用工程…虚拟地址射122设置波特率.:::::::·:.::.·:.124字符发送124字符串发送…125字符接收125宇符串接收UART|P核板级调试131总结基于虚拟地址映射的12C编程应用……133Open Cores2CP简介133Open Cores2C|P奇存器哄射.134PRER:时钟频率预分频寄存尜134CTRL:控制寄存器.134TXR:发送数据寄存器CR:命令寄存器135SR:状态寄存器136l2CP核应用实例.….135在DS-5中建立12C应用工程136虚拟地址映射1362C|P核基本寄存器配冒,140使用12C|读写图像传感器寄存器1412C护P读写oV5640摄像头板级调试.146总结.152本章小节152基于 Linux应用程序的HPS配置FPGA……………………53制作 Quartus工程.153生成rbf格式配置数据……154编译 Linux配置FPGA应用稈序156在系统重配置FPGA实验…157本章小结159目录编译嵌入式LiuX系统内核160安装 VMware161安装 Ubuntu系统灬162下载 Linux系统源码172设置交叉编译环境…配置和编译内核∴……180快速配置内核180使能 Altera UART驱动182使能 Altera sp驱动使能OC12C控制器驱动.…184使能 Framereader驱动保存内核配置文件.187编详内核使用内核启动开发板本章小节192Linux设备树的原理与应用实例.:::::::::::..........:::..:193什么是设各树193设备树基木格式194设各树加载设备驱动原理编写12C控制器设备节点202加载OC12C驱动206使用RTC206使用 EEPROM∴211编写5P控制器设备节点211本章小节214基于 Linux标准文件/o的设备读写…………………………215什么是文件/O215基于文件|O操作的一般方法215文件描述符215打开设备(open)21向设各写入数据( write):::.::aa..216读取设备数据(read).216杂项操作( ioctl)…………217关闭设备(cose)……218其他操作218使用文件1O实现12C编程218本章小节.…221FPGA与HPS扃速数据交互应用222FPGA与HPS通信介绍.……………………………………22H2 LW AXI Master桥H2FAX| Master桥224F2 H AXI Slave桥225AX与 Avalon-MM总线的互联……225Ayalon-MM总线225目录Avalon-MM Slave接口227基本Aa|on- MM Slave iP设计框架29PWM控制器设计…1233Avalon-MM Master接口.253常见的通用 Avalon mm master主札………….…253高速数据采集系统……261Linux驱动编写与编译..273基本字符型设备驱动274字符型设备驱动框架275头文件包含276变量和宏定义.………277en方法278e方法278read方法.278write方法279ioct|方法:::::.::::::::::..a:::a.:....:280fops定义..281模块初始化代码282模块退出代码…284模块声明…284PWM控制器驱动完整源码.….284驱动编译 Makefile289Ubuntu卜编译设备驱动291字符型设备驱动验证292安装驱动文件292设计测试程序…::::::::::.:.:.·:...:::·293基于DMA的字符型设备驱动Avalon -MM Master Write驱动…297Avalon-MM Master Write测试303安装驱动文件303设计测试程序.::::·303本章小节310介绍介绍的基本概念(原于年发布的一款在单一芯片上集成了双核的处理器和逻辑瓷源的新型芯片,相较于传统的单处理器或片既拥有了处理器灵活高效的数据运算和事务处理能力,同时又集成的高速并行处理优势,同时,基于两者独特的片上互联结构,使用时可以将上的通用逻辑资源经过配置,映射为处理器的一个或多个具有特定功能的外设,通过高达位宽的高速总线进行通信,完成数据和控制命令的交互。出于片上的处理器是经过布局布线的硬线逻辑,因此其能工作的时钟主频较高,因此单位时间内能够执行的指令也更多。的基本概念在技术推出之前,各大厂家已经推广了有多年的技术。和不相同的是,是在单纯的心片上使用的逻辑和存储器资源搭建一个软核系统,由该软核实现所需处理器的完整功能。由于是使用的通用逻辑搭建的,因此具有一定的灵活性,用户可以根据自己的需求对进行定制裁剪,增加一些专用功能,例如除法或浮点运算单元,用于提升在某些专用运算方面的性能,或者删除些在系统里面使用不到的功能,以节约逻辑资源。另外也可以根据用户的实际需求,为添加各种标准或定制的外设,例如等标准接口外设,同时,用户也可以自己使用的逻辑资源,编写各种专用的外设,然后连接到总线上,由进行控制,以实现软硬件的协同工作,在保证系统性能的同时,増加了系统的灵活性。而且,如果单个的软核无法满足用户需求,可以添加多个软核,搭建多核系统,通过多核协同工作,让系统拥有更加灵活便捷的控制能力但是,由于是使用的通用逻辑资源搭建的,相较使用经过布局布线优化的硬核处理器来说,软核处理器够运行的最高实时钟主频要低一些,而且也会相应的消耗较多的逻辑资源以及片上存储器资源,因此方案仅适用于对于数处理器整体性能要求不高的应用,例如整个系统的初始化配置,人机交互,多个功能模块问的协调控制等功能介绍与之间的差异从架构的角度来说,和是统一的,都是由部分和处理器部分组成。在中,嵌入的是公司的硬核处理器,简称技术中,嵌入的是软核处理器,两者指令集不一样,处理器性能也不一样核处理器性能远远高于软核处理器。片上的部分,不仅集成了有双核的硬核处理器,还集成了各种高性能外设,如控制器控制器等,有这些外设,部分就可以运行成熟的操作系统,提供统一的系统,降低开发者的软件开发难度。而软核虽然可以通过配置,用逻辑资源来搭建相应的控制器以支持相应功能,但是从性能和开发难度上来说,基于架构进行设计开发是比较好的选择。另外,虽然片上既包含了有又包含了有,但是两者一定程度上是相互独立的,芯片上的处理器核并非是包含于逻辑单元内部的,和()处理器只是封装到同一个芯片接冂、电源引脚和外设的接口引脚都是独立的,因此,如果使用芯片进行设计,即使不使用到片上的处理器,处理器部分占用的芯片资源也无法释放岀来,不能用作通用的资源。而」是使用通用逻辑和存储器资源搭建的,当不使用时部分占用的资源可以被释放,重新用作通用资源。架构的优势嵌入式处理器开发人员面对的一个最大挑战就是如何选择一个满足其应用要求的处理器。现在口有数百种嵌入式处理器,每种处理器都具备一组不同的外设、存储器、接口和性能特性,用户很难做出一个合理的选择:要么为∫匹配实际应川所需的外设和接口要求而不得不选择在某些性能上多余的处理器要么为」保持成本的需求而达不到原先预计的理想方案。采用集成架构的芯片,用户将不会局限于预先制造的处理器技杺,而是根捃自己的要求定制处理器,按照需要选择合适的外设、存储器和接口。此外,用户还可以轻松集成自己专有的功能(如,用户逻辑),创建一款“完美”的处理器,如图所示,使用户的设计具有独特的竞争优势。介绍vOFLASHlo LIcCPUFLASH1/OSDRAMFPGADSPFPGACPU CPU DSPSDRAM用户所需要的嵌入式设备主控制器,应该能够满足当前和今后的设计功能及性能需求。由于今后发展具有不确定性,因此,设计人员必须能够更改其设计,例如为处理器加入新的功能电路,定制硬件加速器,或者加入协处理器,以达刭新的性能日标,而基于的系统能够满足以上要求。采川芯片,用户不仅可以使川处理器的高性能运算和事务处理能力,还可以根据需要定制功能。在单个中实现高性能处理器、外设、存储器和接口功能,可以降低用户的系统总体成本。开发人员希望快速将产品推向市场并保持一个较长的产品生命周期,避免更新换代。基于的系统在以下几个方面可以帮助用户实现此目标≯缩短产品的上市时间—可编程的特性使其具有最快的产品上市速度。许多的设计通过简单的修改都可以被快速地实现到设计处理器能够运行成熟的操作系统,基于操作系统,用户能够非常简单高效的编写应用程序,加快软件开发周期。而系统的灵活性和快速上市的特性源于提供完整的开发套件、众多的参考设计、强大的硬件开发工具(和软件开发工具(套件。用户可以借助厂商提供的参考设计和易用的开发工具。在几个小吋内就完成自己的设计原型。建立有竞争性的优势一维持一个基于通用硬件平台的产品的竞争优势是非常困难的。而器件,能够充分发挥的可编程特性,设讣独有的硬件加速和协处理逻辑,配合处理器协同工作,具备硬件加速、定制的可裁剪的外设等的系统,具备了竞争的优势>延长了产品的生存时间一使川器件的产品带来的一个独特优势就是能够对硬件进行升级。即使产品口绎交付给客户,仍可以定期升级。这些特性可以解决很多问题:
- 2020-12-06下载
- 积分:1
三维装箱问题的模型与改进遗传算法
关于三维装箱算法问题, 一些算法理论, 感觉对这方面的应用有一定帮助144效学的实践与认识40着∑(B,*v)≤VB,B,PD,PWy=0或者1v∈{1,2,…,D},y∈{1,2,…,W},z∈{1,2,…,H},j∈{1,2,…,n}(12目标函数是箱子未装填物品的空间最少(亦即空间浪费最少)条件(2)确保子的1个装填空间单元被装填不超过1次即保证物品间不会互相嵌入;(3)式说明上层物品会有支撑,不会悬空(4),(5),(6)式说明物品装箱位置约束;(7),(8},(9)说明物品的摆放问;(11)是箱子的容积约束2這传算法21遗俊法遗传算法(GAs)是建立在达尔文进化论基础上的搜索算法,它从代表问题潜在解的个种群( population)开始,而一个种群则由经过基因(gene)编码 coding)的一定数目的个体individual)组成遗传算法采用了自然进化模型,如选择,交叉变异等计算开始时,一定数目S个个体(父个体1、父个体2……)即种群随机地初始化,并计算每个个体的适应度函数第一代也即初始代产生如果不满足优化准则,开始产生新一代的计算为了产生新一代按照适应度选择个体,父代通过基因重组(交叉)而产生子代所有的子代按一定的概率变异然后重新计算子代的适应度,将子代插入到种群中取代父代构成新的一代循环执行这一过程,直到满足优化准则22算法设计2.21编码方法采用矩阵编码方法,用多维数组(二维矩阵表示染色体结构,数组元素表示染色体基因,编码清晰,易于理解,遗传算子操作方便染色体S=(L,P,Px,Py,T)来表示问题的一个解其中:向量L=(Li,L1,…,Ln)为待装箱物品的一个排列;向量P=(Bn,B1,…,B3n)为对应于排列L的B,一个排列向量Px=(PB,PB,…,PB)为对应于排列L的PB一个排列向量Py=(PB,PB},…,PB为对应于排列L的PBx一个排列矩阵T=(x2=欢面为对应于排列L的装箱物品坐标22适值函数问题的目标是最小化箱子的浪费空间,适应度函数可定义为空间利用率函数(S代表染色体C1994-2010ChinaAcademicJournalElectronicPublishingHouse.Allrightsreservedhttp://www.cnki.net2期陈德良,等:三维装箱问题的模型与改进遗传算法Fitness(s)(∑B3*v/若∑(B;*v)≤V否则23解的不可行性,罚函数与评估函数由于对染色体作遗传运算时可能获得不可行的子代,惩罚技术是用遗传算法解约束优化问题中最常用的技术,本质上它是通过惩罚不可行解将约束优化问题转化为无约爽问题就本文讨论的问题而言,惩罚项包括:1)物品在装箱时不交叠,即满足约束条件{2},有着∑By≤1g:(S)1,否则2)物品装箱时不能出现悬空即满足约束条件(3),有0若∑B-B+)>0g2(S)=(151,否则3)物品装箱不能超出箱子边界,即满足约束条件(4,(5)和(6),有0若吃+B(Pp++Pwy*吗)≤D1,否则0若+B*(PD*+PWy*m)≤W941,否则(17)95(S)=0,若x+B*h;≤H8)1,否则eat(s=∑9(S)b=1那么,式(14)至(18)任何一个取值为1,都是不可行评估函数eval(S)=Fitness(S)*(5-Genalty (S)24算法步骤)初始化进化代数计数器,随机产生一定数目(大于设定的初始种群规模)的染色体;2)利用式(14)检验初始种群染色体可行性,对不可行解旋转赌轮接受小部分不可行解,与可行解构成初始种群3)对初始种群染色体进行遗传运算;①按照式(14)至(20)计算评估函数:⑩按顺序交叉方法产生子代;④变异算子;4)旋转赌轮选择染色体;)重复3至4)直到完成给定的循环次数;C1994-2010ChinaAcademicJournalElectronicPublishingHouse.Allrightsreservedhttp://www.cnki.net数学的实践与认识40卷6)确定最好的染色体作为最优解3实验结果我们用C++编程实现了上述算法在配置为CPU24GH/512 Mb ram的微机上,用随机产生的数据进行实验取遗传算法运行参数为:{群体大小进化代数,交叉概率,变异概率}-{100,50,0.85,0.05}用随机产生的数据进行实验,求解20个种类100件物品的装箱问题,得到最好解耗时小于1秒;计算50个种类200件物品的装箱问题,得到最好解耗时小于2秒以下是3类共16件物品的装箱问题.实验数据图2,第!行为箱子尺『;第2至第4行为待装箱物品,每行第1个数据表小序号第2至镌4数据分别为物品尺寸,第5个数据表示物品件数在计算转桌中包含数据依次是:序号,是否装载,物品长,物品宽,物品高,纵向坐标横向坐标,垂向坐标纵向长度,横向长度,垂向长度(图4).从图4可知第12号物品未能装箱,物品装箱的顺序可以从“序号列中得出.绘制的物品装箱示意图见图31421,2,乙2,2,图2实验数据图3装箱示意图文件((格式(Q帮助新 s REPORT耗时:.1 most g sec次数:01615积:7580001016每a0库:92.875989名寸:=280;y=1210;2=300NO: P st Din 1 Din 2 in 3 C xC YPu y Pu 2202002002002001002812B20020012010010020012鲁2020012010020020020020012B100100212021201215024015824815015561111111111115152每000ao00015150240202020055020200201002001215502D0200120100100201205s012020028012015024075000015024815015024075015015024a152002009o002002001002012090020012日未装相物品121501502年图1计算结果o1994-2010ChinaAcademicJournalElectronicPublishingHousealLrightsreservedhttp://www.cnki.net2期陈德良,等:三维装箱问题的模型与改进遗传算法1474结束语装箱问题是一常见而难解的优化问题,利用遗传算法求解时,随机产生的初始解会出现大量的不可行解(装箱物品占用空间出现大量交叠),本文将箱子内部空间划分为一个个立方体单元:算法的第2)步对标准遗传算法做了修改通过剔除大量不可行解提高算法的收敛速度,实验结果表明此算法运算过程及绪果稳定,具有较强的实际应用价值能有效解决复杂的三维装箱何题,今后将继续研究将该方法运用到其它不同的有关装箱问题或组合优化问题中参考文献[1] John J, et al. An improved algctithra for the ncn-guillctine-constraincd cutting-stock problem(JIOperational Resee ch Society, 19 /0,+1: 141-149[2] Coffmau E. G, et al. ver age-case analysis of cutting and packing in two dimensions [J]. Euro. Jof Operatic al Reseaich, 1990, 44: 134-14413) Fabien C, et al. A Two-phase heuristic for the two-dinensional cutting-stock problem [J. Opera-tional Research Society, 1991, 42: 39-744 Martello Silvano, Pisinger, David, and Vigo, Daniele. The Three-Dimensional Bin Packing ProblemJ. Operations Research, 2000 Informs. Vol. 48: 256-267]何大勇,査建中,姜义东遗传算法求解复杂集装箱装载问题方法研究向]软件学报,201,12(9):13801385阿]张德富魏丽军陈青山陈火旺等.三维装箱问题的组合启发式算法软件学报,2007,18(9):20832089A Mixed Integer Programming Model ofThree-Dimensional Bin-Packing Problem and ImprovedGenetic AlgorithmsCHEN De-liang, 2, CHEN Zhi-yaSchool of Traffc &z transportation Engineering, Central South University, Changsha 41076, China)(2. Logistics School, Central South University of Forestry Technology, Changsha 410004, ChinaAbstracts The three-dimensional bin-packing problem is complicated but a high level ofinterest in developing effective way to solve this kinds of NP-hard problem. First a MixedInteger Programming model was worked out in this paper, which resorted to dividing box spaceinto unit cube. Then an improved genetic algorithm was mainly developed. Tests on hundredsof problems show that this algorithm makes the most of volume utilization in minimal timeKeywords: three-dimensional bin-packing problem; space division; mixed integer program-ming model; improved genetic algorithmso01994-2010ChinaAcademicJournalElectronicPublishinghOuse.Allrightsreservedhttp://www.cnki.net
- 2020-12-05下载
- 积分:1