System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种picoBlaze软核处理器的程序空间扩展方法和系统技术方案_技高网

一种picoBlaze软核处理器的程序空间扩展方法和系统技术方案

技术编号:41182015 阅读:5 留言:0更新日期:2024-05-07 22:15
本发明专利技术公开了一种picoBlaze软核处理器的程序空间扩展方法和系统。所述方法在FPGA设计中设计软核的多个ROM实例,并通过软核的端口扩展一个端口寄存器ROM_CR用于控制ROM实例的输出选择;扩展多个ROM单元,对每个ROM单元分别设计相应的应用程序并增加ROM切换条件判断指令,在切换条件满足时跳转到ROM切换代码;每个ROM单元存储有同样的ROM切换代码,用于实现跳转到新的ROM单元的应用程序。本发明专利技术对原FPGA设计修改极少的情况下实现软核处理器程序空间的扩展,相应的程序设计方法简单,能满足大多数情况下的任务处理对程序空间扩展的需求。本发明专利技术还提供一种picoBlaze软核处理器系统。

【技术实现步骤摘要】

本专利技术涉及工控、嵌入式领域,具体涉及一种picoblaze软核处理器的程序空间扩展方法和系统。


技术介绍

1、由于并行处理和可编程等特性,fpga(field-programmablegatearray,现场可编程门阵列)芯片在通信、控制和数据处理等领域应用的越来越广泛。相对于通用处理器,fpga芯片更多的用于解决特定的问题,借助硬件编程语言,fpga在解决大规模的逻辑、时序控制、数据交换等方面具有通用处理器不可比拟的优势,但是相比通用处理器,fpga在处理一些通用的例如字符串处理、存储器访问、协议分析等任务时,不但程序设计复杂、灵活性差,性价比也很低。为了提高fpga芯片的通用性,节省系统成本,很多fpga厂家都在fpga内部集成了软核或者硬核处理器,用来辅助执行这些通用的任务。picoblaze是xilinx公司的官方根据其fpga架构特点设计的一款8bit软核处理器,它具有1k*18bit的程序空间,采用汇编语言编写程序来完成具体的任务,但是由于只有1k的程序空间,很多时候不够用,为了完成任务,一般会采用以下方法解决这个问题:

2、1.在一个设计中集成多个picoblaze软核,每个软核处理一部分任务,通过多个软核协作完成整个任务。由于picoblaze的资源占用很少,这种方法不会占用太多fpga资源,但是实现起来比较复杂,要进行任务分割,还要设计软核之间的通信模块和通信协议,效率也不高。

3、2.在fpga中给picoblaze设计外扩的硬件加速器模块,将原本由软核的软件完成的任务使用硬件加速器完成。这种方法的缺点是设计难度大,资源占用多,因为适合picoblaze来处理的任务一般速度不快,但是逻辑或流程复杂,如果使用fpga硬件来实现,设计难度会比较大,消耗的资源也会很多,并且灵活性差,如果需求有改动,修改硬件加速器比修改硬件要花费更多的时间。

4、3.修改picoblaze软核的内核设计,使软核支持更大的程序空间。使用这种方法,首先要研究picoblaze的指令系统,对指令的编码和指令的实现要有深刻的理解,其次,修改了内核之后,原来的编译工具无法再使用,需要自己去写汇编器,这进一步增加了工作量和难度。

5、因此,亟需一种方便、简单的picoblaze软核程序空间扩展方法。


技术实现思路

1、专利技术目的:本专利技术针对picoblaze软核程序空间不足的问题,提出了一种picoblaze软核程序空间的扩展方法,该方法具有实现简单和使用灵活的特点,并且理论上可扩展的程序空间不受限制。

2、本专利技术的另一目的是提供一种程序空间扩展的picoblaze软核处理器系统。

3、技术方案:第一方面,一种picoblaze软核程序空间的扩展方法,包括以下步骤:

4、在fpga设计中,设计软核的多个rom实例,并通过软核的端口扩展一个端口寄存器rom_cr,所有rom实例接收相同的地址,其数据输出通过rom_cr的值进行选择之后再送给软核;

5、将picoblaze软核处理器中原始的一个rom单元扩展为多个rom单元,对于每个rom单元,分别设计相应的应用程序,在每个rom单元的应用程序中增加rom切换条件判断指令,对设计的切换条件进行判断,如果判断需要切换到其他rom单元,则确定其他rom单元对应的rom_cr寄存器的值,将该值写入参数寄存器,然后跳转到rom切换代码;

6、每个rom单元存储有同样的rom切换代码,rom切换代码功能固定,包括:将参数寄存器中的值写入端口寄存器rom_cr;跳转到应用程序的入口地址,开始执行新的rom单元的应用程序;

7、将各个rom单元的应用程序和rom切换代码放在一起汇编成各rom单元对应的程序文件,将这些文件和对应的rom实例一一关联,放入fpga的设计中进行综合,完成整个设计。

8、第二方面,一种picoblaze软核处理器系统,包括:

9、端口寄存器rom_cr,通过picoblaze软核的端口扩展得到,软核可以对其进行读写,rom_cr寄存器中用于存放要切换的rom单元的标识值;

10、多个rom单元,每个rom单元存储相应的应用程序以及固定的rom切换代码,每个应用程序中添加了rom切换条件判断指令,用于对设计的切换条件进行判断,在判断需要切换到其他rom单元时确定其他rom单元对应的rom_cr寄存器的值,将该值写入参数寄存器,然后跳转到rom切换代码;rom切换代码功能固定,包括:将参数寄存器中的值写入端口寄存器rom_cr,跳转到应用程序的入口地址,开始执行新的rom单元的应用程序;

11、picoblaze软核,向各rom单元发送统一的地址,并从rom中取出指令,对指令进行处理。

12、有益效果:本专利技术提供的一种picoblaze软核处理器的程序空间扩展方法和系统,可以在对原fpga设计修改极少的情况下实现软核处理器程序空间理论上的无限扩展,相应的程序设计方法简单,能满足大多数情况下的任务处理对程序空间扩展的需求。

本文档来自技高网...

【技术保护点】

1.一种picoBlaze软核处理器的程序空间扩展方法,其特征在于,所述方法包括以下步骤:

2.根据权利要求1所述的方法,其特征在于,ROM切换代码对于每个ROM单元是一样的,包括代码内容、在ROM中的起始地址均是一样的。

3.根据权利要求1所述的方法,其特征在于,ROM切换代码是使用picoBlaze软核处理器的“address”伪指令映射到约定的地址的。

4.根据权利要求3所述的方法,其特征在于,所述约定的地址位于程序空间的最高地址附近。

5.根据权利要求1所述的方法,其特征在于,每个ROM单元的应用程序中的ROM切换条件判断指令存放在主程序中执行。

6.根据权利要求1所述的方法,其特征在于,每个ROM单元的应用程序的入口地址使用地址0。

7.一种picoBlaze软核处理器系统,其特征在于,包括:

8.根据权利要求7所述的系统,其特征在于,ROM切换代码是使用picoBlaze软核处理器的“address”伪指令映射到约定的地址的。

9.根据权利要求8所述的系统,其特征在于,所述约定的地址位于程序空间的最高地址附近。

10.根据权利要求7所述的系统,其特征在于,每个ROM单元的应用程序中的ROM切换条件判断指令存放在主程序中执行。

...

【技术特征摘要】

1.一种picoblaze软核处理器的程序空间扩展方法,其特征在于,所述方法包括以下步骤:

2.根据权利要求1所述的方法,其特征在于,rom切换代码对于每个rom单元是一样的,包括代码内容、在rom中的起始地址均是一样的。

3.根据权利要求1所述的方法,其特征在于,rom切换代码是使用picoblaze软核处理器的“address”伪指令映射到约定的地址的。

4.根据权利要求3所述的方法,其特征在于,所述约定的地址位于程序空间的最高地址附近。

5.根据权利要求1所述的方法,其特征在于,每个rom单元的应用程序中的rom切换条件...

【专利技术属性】
技术研发人员:董艳博施胜丹王小红滕贤亮杨合民牟晓春胡静梁帅奇祝瑞军田安民杨海英张青杰
申请(专利权)人:国电南瑞科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1