System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及工控、嵌入式领域,具体涉及一种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设计外扩的硬件加速器模块,将原本由软核的软件完成的任务使用硬件加速
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切换条件...
【专利技术属性】
技术研发人员:董艳博,施胜丹,王小红,滕贤亮,杨合民,牟晓春,胡静,梁帅奇,祝瑞军,田安民,杨海英,张青杰,
申请(专利权)人:国电南瑞科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。