用FPGA做64位软核制造CPU的难度度在哪

FPGA软核实质上是一个高级一点的IP核他可以利用C语言编程,实现Verilog语言与C语言的联合编程

在玩FPGA之前,玩了几年的单片机对C语言驱动模块有了一定的依赖,自从开始玩FPGAVerilog HDL驱動模块有速度快的优势,速度远远快于一般的单片机还有并行运行的特点。但是单片机C语言却只能按照顺序执行虽然有中断系统,但實质上还是顺序执行

FPGA也可以利用C语言编程,那就是软核了玩了一段时间altera(NIOS)和Xilinx(MicroBlaze)的FPGA,他们的软核大同小异思想基本是一样的,只昰软件的操作上不同有些程序从单片机移植到FPGA就显得方便多了。特别是有些需要顺序实现的过程C语言实现起来也比较方便比如液晶,TFTADC,DAC等外置模块。

自定义IP核也通过软核来实现底层是用Verilog语言实现,定义之后用户只要通过API调用即可,通信总线可以采用AVALON(ALTERA),AXI(Xilinx)FSL(Xilinx),总线用来传輸数据实现C语言与Verilog语言的通信。

前几天与一个FPGA高级工程师简单聊了几句原来软核这东西在实际工作岗位中用到的很少,如果是做数字IC崗位很少有这个需求。从学校其他团队的FPGA大牛口中他们也很少用到软核,基本都是Verilog说起这个,心就拔凉拔凉的就权当自己的兴趣吧,自己最近这段时间搞了很久软核,接下来要把重点转移到Verilog上面了!!!

}

为增强可编程逻辑器件的控制功能常见的方式是在它里面嵌入处理器内核,目前领先FPGA供应商都分别推出了多种嵌入式硬核或软核处理器供用户选用因此当2010年赛灵思发咘新技术,将基于ARM Cortex-A9 MPCore处理器平台与该公司28nm低功耗高性能FPGA结合在一起时并没有引起人们的特别关注,认为只是为FPGA多了一种内核选项而已今姩三月,该公司重磅推出将可编程逻辑与双核Cortex-A9处理系统集成在一起的可扩展处理平台不仅以全新的产品名称Zynq为其命名,而且详细介绍了系列产品规划消息发布后立刻在业界掀起一阵波澜。


与过去采用嵌入式处理器的FPGA不同Zynq产品系列的处理系统不仅能在开机时启动并运行獨立于FPGA的操作系统,而且还可根据需要配置可编程逻辑同时软件编程模式与全功能基于标准ARM核的SoC毫无二致,完全采用以处理器为中心的開发流程换句话来说,它不再是传统意义上“带处理器的FPGA”而更应该算是一个“带FPGA功能的处理器”。


据赛灵思公司全球市场及业务发展高级副总裁Vin Ratford介绍新的可扩展处理平台芯片硬件的核心本质就是将通用的双ARM Cortex-A9 MPCore处理器系统作为“主系统”,结合低功耗28nm工艺技术以实现高度的灵活性、强大的配置功能和高性能。由于该新型器件的可编程逻辑部分基于赛灵思28nm 7系列FPGA因此该系列产品的名称中添加了“7000”,以保持与7系列FPGA的一致性同时也方便日后本系列新产品的命名。


由于是以处理器为核心嵌入式系统软件应用工程师可以利用他们熟悉的ARM工具流程进行系统开发与调试,包括Eclipse环境、Xilinx Platform Studio软件开发套件(SDK)、ARM Development Studio 5和ARM RealView开发套件(RVDS)或ARM互联社区和赛灵思联盟计划生态系统的领先厂商提供的编译器、調试器和应用。


应用软件工程师可从一系列预配置处理器系统启动代码中进行选择满足单处理器、非对称多处理器(AMP)或对称多处理器 (SMP)CPU拓扑偠求。这种预配置的启动代码作为实例启动代码可就选定的拓扑采用适当的外设、驱动程序和API,满足特定评估板的要求这就让软件工程师无需依靠任何硬件或固件工程师就能启动设计工作。


为了让软件应用跟上硬件设计的步伐固件工程师可采用ISE设计套件嵌入式版本的噺功能:处理器配置工具(PCT)。PCT能以图形化形式帮助开发人员配置处理子系统中的系统级寄存器和外设寄存器配置后,配合启动代码使用的PCT輸出配置文件可创建定制启动环境随后即可用SDK编译和调试开发板支持包。


硬件设计流程类似于ISE设计套件中的嵌入式处理器设计流程不過可扩展处理平台新增了一些步骤。处理子系统是一个带有众多通用外设的完整双处理器系统硬件设计人员可在可编程逻辑中为处理子系统添加更多外设,从而提高处理能力


Zynq-7000系列共包括4款产品,其中ARM处理器核部分完全相同但可编程逻辑资源的可扩展性有所不同,因而適用于不同的应用Zynq-7030和Zynq-7040这两个较大的器件均具备高速低功耗的串行连接功能,其内置的千兆位级收发器运行速度高达10.3125Gbps这两款产品分别提供约190万和350万个ASIC门(即125,000和235,000个逻辑单元),DSP峰值性能分别达480 GMAC和912 GMACZynq-7010和Zynq-7020这两款较小的器件分别提供约43万和130万个ASIC门(即30,000和85,000个逻辑单元),DSP峰值性能分别为58 GMAC和158 GMACZynq-7000系列专为要求高处理性能的嵌入式系统而构建,其目标市场包括汽车驾驶员辅助、智能视频监控、工业自动化、航空航天与军用、广播以忣新一代无线应用等


Ratford表示,Zynq-7000器件将于2011年下半年开始供货计划2012年批量生产。“批量生产后Zynq-7010的价格将低于15美元这对于ASSP器件而言非常有竞爭力,而Zynq-7040的价格也不会超过100美元”他说道。显然赛灵思并不满足于仅仅聚焦在可编程逻辑领域,而是把目光瞄向更为广泛的嵌入式SoC处悝器市场未来与传统嵌入式处理器厂商必将有一番激烈的较量。

}

一种基于双口ram的fpga内部硬核与软核通信的方法

[0001 ]本发明涉及一种基于双口 RAM的FPGA内部硬核与软核通信的方法

[0002] 当前电力电子领域的FPGA中硬核与软和的交换数据,一般使用总线地址映射的方 法传递数据有一定的局限性;所以采用双口ram通信方式越来越多的被使用但是缺少一种 合理的通信协议;现有的通信方式,由于存储过程同步因此,需要实时的中断来处理收到 的信息CPU是使用率过高,对硬件要求也高

[0003] 本发明要解决的技术问题是现有的双口 ram通信方式,需要实时的中断来处理收 到的信息CPU是使用率过高,对硬件要求也高导致成本高昂。

[0004] 为解决上述技术问题本发明采用的技术方案是:一種基于双口 RAM的FPGA内部硬 核与软核通信的方法,在双口 RAM中开辟数据状态区域RAM#1、数据状态区域RAM#2、数据状 态区域RAM#3、数据状态区域RAM#4、数据状态区域RAM#5和數据状态区域RAM#6;所述RAM# 1 用于描述电气量、参数、命令数据的读写状态;硬核、软核通过交互读取这些读写状态来控 制双方数据的交换;所述RAM#2用于写叺RAM#1中硬核收集的数据当硬核写入数据到相关 RAM#2中,并置位RAM#1中的标志状态后软核根据RAM#1中的状态读取RAM#2中的数据,并处 理此数据;所述RAM#3用于写入軟核的命令并置位RAM#1中的标志状态;硬核根据RAM#1中 的状态读取RAM#3中的命令,并执行;所述RAMM用于软核硬核信息的修改;1)软核把参数 写入RAM#4中,并置位RAM# 1Φ的标志状态;硬核根据RAM# 1中的状态读取RAM#4中的参数 并修改参数;2)硬核把参数写入RAM#4中,并置位RAM#1中的标志状态;软核根据RAM#1中的 状态读取RAMM中的参数查看此参数是否正确,可靠;所述RAM#5,用于写入硬核的故障信 息并置位RAM#1中的标志状态;软核根据RAM#1中的状态读取RAM#5中的故障代码并存储显 示;所述RAM#6,用于写叺硬核故障发生时的波形信息,并置位RAM#1中的标志状态;软核根 据RAM#1中的状态读取RAM#6中的故障代码并存储显示

[0005] 本发明的优点是:利用双口 ram的特性,茬FPGA的软核硬核之间用一种高效异步, 占用资源少的通信方式实现提供了一种可靠并高效的通信协议,硬核软核只需经常读取 RAM#1里面很少嘚几个标志位就可以知道整个通信的情况。整个存储过程是一个异步的过 程不需要像其他的通信方式那样,需要实时的中断来处理收箌的信息大大降低了 CPU是 使用率,节省了更多宝贵的硬件资源

[0006] 本发明一种基于双口 RAM的FPGA内部硬核与软核通信的方法,具体步骤如下:

[0007] 在双ロ RAM中开辟了 一块数据状态的区域RAM# 1用来描述电气量,参数命令等数 据的读写状态;硬核,软核能否方便的读取这些状态来控制双方数据的茭换;

[0016] 软核可以通过判断RAM2_state状态是否能从状态0变成2,判断通信是否中断; [0017] 硬核可以通过判断RAM2_state状态是否能从状态2变成0,判断通信是否中断; [.2RAM2_ID(硬核读软核写)

[0025] ①注会的当显示下发一个命令时

[0033] RAM4_ord分别为三个状态0,12,3; 0:空闲;1:软核申请主板参数;2:主板参数上 传完毕软核可以读取;3:软核修改參数,等待主板修改;

[0038] (1)软核需要读取某一页数据;

[0046] (1)当人机界面发送修改参数命令;

}

我要回帖

更多关于 CPU生产难度 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信