论文部分内容阅读
SoC(System-on-chip)是指在一个芯片上集成完整的系统,也是现在运用很广的一种芯片设计方法之一。SoC设计不是以功能电路为基础的技术,而是以IP核为基础搭建系统,实现IP核的复用。这样能提高工作效率、节约成本、增加系统功能、减少出错率等。常见的SoC系统一般包括处理器、总线、存储模块、时钟模块和外设等。对于SoC设计来说,搭好环境后,还得有相应的一套IDE开发工具,包括装有配套开发环境的PC,电路板和连接线。开发完成后应用于嵌入式领域,一般很难支持二次开发。或者支持二次开发,但是受带开发环境的PC终端、电路板、连接线等条件的约束很不方便。因此,本论文中提出一种基于OR1200的无线智能程序加载SoC设计方案,使得芯片能方便的实现二次开发,摆脱带开发环境的PC终端、开发板、连接线等条件的约束,增加芯片的利用率,简化二次开发流程。其中OR1200是开源项目OpenRISC项目的一个子项目,采用的是Harvard结构,是32位的RISC处理器,具有免费、开源、简单、低功耗和可扩展等优点。性能上来说相当于ARM9的性能。本文所述基于OR1200的SoC程序加载系统中,它至少包括处理器、只读存储器、总线仲裁模块、串行外设接口、内存模块、通用异步收发传输器、时钟模块等。Wishbone总线仲裁采用轮循机制实现主设备与从设备之间的访问。此文改变了传统的把一个程序存储在flash中,当烧录下一个程序时就会覆盖上一个程序的做法,而把flash划分成三个程序区。烧录flash时,把不同的程序放在不同的程序区。当从SPI flash启动时,程序指针首先指向只读存储器ROM里面的Bootload区,以完成程序从flash拷贝到内存,再从内存开始执行指令,实现系统的自启动。此外,本文设计在此基础上增加了Bootload的功能,即不仅能完成程序的拷贝,还能监测串口,根据收到的命令选择一个程序区的程序拷贝到内存。使得芯片封装好之后,无需接线,无需相应的IDE软件来加载程序,通过手机或带有蓝牙模块的终端就可以加载不同的程序,此设计在智能终端领域能有很好的应用。基于SoC的无线智能程序加载方法步骤如下:搭建SoC系统;将加载启动代码烧录至只读存储器中;将flash存储器分区并加载不同的程序;初始化串行外设接口和通用异步收发传输器,从flash存储器中选择相应程序区实现程序到内存模块的拷贝;执行跳转命令,将处理器指向内存模块的起始位置,实现系统的自启动。通过带蓝牙功能的终端发送不同的命令即可选择flash程序区中不同的程序加载到内存模块,通过无线控制实现不同程序的加载。本论文中不仅描述了一种基于OR1200的SoC程序加载方案,还实现了此方案的设计,经过EDA工具综合和仿真后,在Xilinx开发板上进行下板测试。