微波EDA网,见证研发工程师的成长! 2025濠电姷鏁告慨鎾儉婢舵劕绾ч幖瀛樻尭娴滅偓淇婇妶鍕妽闁告瑥绻橀弻锝夊箣閿濆棭妫勭紒鐐劤濞硷繝寮婚悢鍛婄秶闁告挆鍛缂傚倷鑳舵刊顓㈠垂閸洖钃熼柕濞炬櫆閸嬪棝鏌涚仦鍓р槈妞ゅ骏鎷�04闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗銆掑锝呬壕濡ょ姷鍋為悧鐘汇€侀弴銏℃櫆闁芥ê顦純鏇㈡⒒娴h櫣甯涢柛鏃€娲熼獮鏍敃閵堝洣绗夊銈嗙墱閸嬬偤鎮¢妷鈺傜厽闁哄洨鍋涢埀顒€婀遍埀顒佺啲閹凤拷25闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗銆掑锝呬壕濡ょ姷鍋為悧鐘汇€侀弴銏℃櫇闁逞屽墰缁絽螖娴h櫣顔曢梺鐟扮摠閻熴儵鎮橀埡鍐<闁绘瑢鍋撻柛銊ョ埣瀵濡搁埡鍌氫簽闂佺ǹ鏈粙鎴︻敂閿燂拷 闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗銆掑锝呬壕濡ょ姷鍋為悧鐘汇€侀弴銏犖ч柛灞剧煯婢规洖鈹戦缁撶細闁告鍐f瀺鐎广儱娲犻崑鎾舵喆閸曨剛锛涢梺鍛婎殕婵炲﹪鎮伴鈧畷鍫曨敆婢跺娅屽┑鐘垫暩婵挳骞婃径鎰;闁规崘顕ч柨銈嗕繆閵堝嫯鍏岄柛娆忔濮婅櫣绱掑Ο鑽ゎ槬闂佺ǹ锕ゅ﹢閬嶅焵椤掍胶鍟查柟鍑ゆ嫹婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柟闂寸绾剧粯绻涢幋娆忕仾闁稿鍊濋弻鏇熺箾瑜嶉崯顐︽倶婵犲洦鈷戦柟绋挎捣缁犳挻銇勯敂璇茬仯缂侇喖顭烽、娑㈡倷鐎电ǹ寮抽梻浣虹帛濞叉牠宕愰崷顓涘亾濮樼偓瀚�
首页 > 硬件设计 > 嵌入式设计 > 双MicroBlaze软核处理器的SOPC系统设计

双MicroBlaze软核处理器的SOPC系统设计

时间:01-27 来源:3721RD 点击:

引言

随着时代的发展,单核片上可编程系统SOPC(Systern On a Programmable Chip)解决复杂问题的能力与处理速度已很难满足用户的需求,面向多处理器SOPC系统的设计成为片上系统发展的必然趋势。具有高密度、大容量逻辑的FPGA(Field Programmable Gate Array)的出现使得高性能片上多处理器的设计成为现实。目前,片上多核系统的设计已有一定发展,但在处理器间通信和中断方面仍需进一步的研究。本文在处理器间通信和中断控制方面进行了深入的研究。

MicroBlaze是一个被优化过的可以在Xilinx公司FPGA中运行的软核处理器,可以和其他外设IP核一起完成可编程系统芯片的设计。它具有运行速度快、占用资源少、可配置性强等优点,广泛应用于通信、高端消费市场等领域。MicroBlaze处理器采用RISC(ReducedInstruction Set Computer)指令集结构和哈佛存储结构,指令、数据总线位宽均为32位。本文MicroBlaze处理器采用面积优化,流水线分为3级,即取指、译码和执行,减少了硬件开销。

1系统设计

1.1双MicroBlaze SOPC系统结构

双MicroBlaze SOPC系统结构图如图1所示。从图1中可知,整个SOPC系统可以分为两个处理器子系统。系统采用两个PLB(Processor Local Bus)v46总线作为系统的通信结构,所有的模块都是直接或间接地连接到这两个总线上。两个总线上均挂有用于处理器间通信和同步的核,即Mailbox和Mutex,因此两个处理器并不是完全独立的。表1列出了SOPC系统包含的主要模块。

闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗銆掑锝呬壕濡ょ姷鍋涢ˇ鐢稿垂妤e啫绠涘ù锝呮贡缁嬩胶绱撻崒姘偓鐑芥倿閿曚焦鎳岄梻浣告啞閻熴儳鎹㈠鈧濠氭偄绾拌鲸鏅梺鎸庣箓濞诧絽效濡ゅ懏鍋℃繝濠傛噹椤eジ鎮介娑樻诞闁诡喗鐟︾换婵嬪炊閵娧冨妇濠电姷鏁搁崐顖炲焵椤掑嫬纾婚柟鍓х帛閻撴盯鎮楅敐搴′簽濠⒀冪仛閹便劍绻濋崨顕呬哗闂佸湱鎳撶€氱増淇婇幖浣肝ㄩ柨鏃€鍎崇紞鎺楁⒒閸屾瑨鍏岄柟铏崌瀹曠敻寮介鐐殿唵闂佽法鍣﹂幏锟�...

表1中的BRAM有两种用途:一是作为单个处理器的私有存储器用来存储指令和数据,它通过存储器局部总线LMB与处理器相连;二是作为两个处理器之间的共享存储器(Shared Memory)用作通信模块进行数据传输。它所传输的数据量比Mailbox大很多,特别是在传输信息量大于千字节时,共享存储器是最常用的通信模块。

1.2硬件设计

1.2.1硬件结构

图1所示的SOPC系统的整体结构不仅和处理器的数目有关,还和系统中模块的配置及功能有关,外部存储器和外围设备的不同配置都会影响系统的结构和功能。具体如下:

①SOPC系统通过各自独立的PLBv46总线隔离两处理器子系统,可以确保两个处理器系统在执行各自的处理器事务时不会相互干扰。

②共享模块(例如MPMC),采用多端口结构,这些多端口模块使多个处理器在访问共享模块时可以并行进行。

③两个独立的MicroBlaze处理器Mb_0和Mb_1,通过共享部件连接在一起,这些共享部件使得两个MicroBlaze处理器之间以各种方式通信。

④此SOPC系统中有两个MicroBlaze处理器软核,其中任何一个MicroBlaze都可以灵活地被其他类型的处理器所代替,比如PowerPC,因此处理器的选择是非常灵活的。

⑤两个处理器可以共享互斥访问设备,比如串口UART、串行外设接口SPI(Serial Periphieral Interface)等,这种情况需要在没有直接连接此外设的总线和直接连接此外设的总线之间提供一个系统总线桥。

⑥关键的外围设备是外部存储控制器MPMC,它最多提供8个端口,可以通过XCL(Xilinx Cache Link)连接处理器局部存储器(BRAM),通过PLBv46总线连接到系统中,因此,可以将1~4个处理器同时连接到MPMC控制器上。

⑦两个处理器之间的Mailbox和Mutex有简单通信的功能,主要体现在处理器之间的通信和同步上。

1.2.2存储器映像

当程序没有被加载或者运行的时候,它以文件的形式存放在硬盘上。当它被下载到MPMC内存中的时候,系统会自动从MPMC内存中划分出一段区域,用来将这个磁盘上的文件映射到内存相应的位置上。此时这块内存中的数据就是磁盘文件的一个拷贝。存储器映像就是指和被加载的磁盘文件相对应的一块内存区域。由于MPMC存储器和外围设备是统一编址的,两者的地址范围不可能重叠,因此直接或者间接连接到处理器上的外围设备地址的分配决定了外部存储器的地址空间。

一般而言,当多个处理器共用一条总线时,存储器、外围设备和共享元素是密不可分的,在本文设计的处理器系统中,每一个处理器都有自己独立的系统总线,因此,所有的存储器和外围设备与共享元素都是分开的。也就是说,不同总线上的相同外围设备可以有相同的地址范围。在每一个处理器子系统中,为了能够运行可执行文件,对存储器映像有一些要求。每个处理器都必须将自己的可执行文件加载到各自私有的MPMC地址空间中,可执行文件加载地址不能重叠。在私有存储器里必须有各自的复位和中断存储器映像,这种私有存储器可以通过本地存储器接口(XCL)或者PLBv46总线接口连接起来。一旦私有存储器与其他总线连接完毕,XPS的地址发生器会为每一个MieroBlaze处理器子系统(包括外围设备和存储器)生成适当地址范围的存储器映像。

灏勯涓撲笟鍩硅鏁欑▼鎺ㄨ崘

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top