打印

GSM和您讨论MicroBlaze那些事

[复制链接]
楼主: GoldSunMonkey
手机看帖
扫描二维码
随时随地手机跟帖
41
GoldSunMonkey|  楼主 | 2011-10-26 21:56 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
FSL:
MicroBlaze 7.0最多支持16个FSl的接口。 每个FSL接口有一个输入口和一个输出口。FSL 接口主要用于点对点单
向的数据流的传输。FSL的特点是效率高而且占用的资源比较少 。
调试接口:
MicroBlaze特色的引入调试接口来支持基于JTAG的软件调试工具(通常称做BDM或称后台调试模式调试
器),像Xilinx Microprocessor Debug (XMD)工具。调试接口设计成与Xilinx Microprocessor Debug
Module (MDM)核相连,而MDM与Xilinx FPGA的JTAG端口相连。多个MicroBlaze的场景也能通过允许多
处理器调试的方法与单个MDM相连。调试的特点包含:

使用特权

评论回复
42
GoldSunMonkey|  楼主 | 2011-10-28 13:28 | 只看该作者
调试的特点包含:
硬件断点,观察点数量可设置,软件断点无限制。
外部处理器控制允许调试工具停止,重置,和单步运行MicroBlaze。
可以对内存,通用寄存器,特殊目的寄存器(除EAR,EDR,ESR,BTR 和 PVR0; PVR11只能读取)读取和写入。
支持多处理器。
写入指令和数据高速缓存。

使用特权

评论回复
43
GoldSunMonkey|  楼主 | 2011-10-28 13:33 | 只看该作者
软件直接内存存储支持(SDMA):
   双沿数据传输模式(DDR)和DDR2内存支持
   单沿数据传输模式(SDR)的SDRAM内存支持
   DIMM支持(寄存,无缓冲)
   纠错码(ECC)支持
   端口数量参数化(1到8)
   到内存数据位数参数化(8, 16, 32, 64)
   数据分支FIFO配置参数化
   性能监控(PM)支持
   基于PHY的对内存接口产生器(MIG)有可选性的静态PHY接口
   用户配置的中断仲裁机制
   接口用户化:

        NPI接口
        Xilinx高速缓存连接(XCL)
        局域连接(用SDMA)
        带有Xilinx简化的处理器局域总线(PLB v4.6)

使用特权

评论回复
44
GoldSunMonkey|  楼主 | 2011-10-28 13:35 | 只看该作者
本帖最后由 GoldSunMonkey 于 2011-10-28 13:37 编辑

MPMC 的内部结构
MPMC最多有8个端口,这些端口是相互独立的。也就是说,随时可以通过任意一个端口来访问内存。如果有
两个端口同时访问内存,MPMC的仲裁器会按一定的规则来仲裁并决定其先后。而且MPMC的每个端口均带
有缓存,所以在往一个口写入数据的时候,数据是先写入缓存,等到这个端口取得内存写入权后再从缓存写入
内存。数据写入缓存再写入内存的过程对用户是不可见的。所以对于用户自己的逻辑来说,只要把数据写入
MPMC的端口就可以了。但是这里要注意判断一下缓存是否已满,否者会出现数据丢失。使用缓存就像CPU使
用CACHE一样,可以大大提高MPMC的吞吐效率。但是和CACHE一样,会带来数据不同步的问题。下面会详
细讨论这个问题。

MPMC内部结构图

使用特权

评论回复
45
GoldSunMonkey|  楼主 | 2011-10-28 13:37 | 只看该作者
MPMC 接口
MPMC一共提供了4种接口:PLB,XCL,SDMA,NPI。PLB接口主要用作处理器通过PLB总线
访问内存。XCL主要是用作处理器的CACHE从内存读取数据时使用。SDMA 是外部数据要用DMA方式写入
内存的时候使用,其支持SGDMA。NPI接口是让用户在自己的设计中利用MPMC特性的接口,下面就将详
细讲述NPI接口。

使用特权

评论回复
46
GoldSunMonkey|  楼主 | 2011-10-29 14:01 | 只看该作者
本帖最后由 GoldSunMonkey 于 2011-10-29 14:05 编辑

MPMC的使用
双击Bus_Interface标签栏下的DDR_SDRAM,进入编辑MPMC的界面。如图

Base Configuration
Base Configuration包含两个标签栏。其中,用户可以在Port Type Configuration中配置端口类型,
MPMC最多可以有8个端口,每个端口有前述的4种接口类型XCL,PLB,SDMA,NPI以及不使用
INACTIVE。

MPMC端口的4种接口类型以及不使用INACTIVE

使用特权

评论回复
47
GoldSunMonkey|  楼主 | 2011-10-29 14:06 | 只看该作者
分配完毕后可以通过LeftJustify将不工作的端口消除掉。在这个过程中所有与端口有关的参数和外部总线连接都被
移到左边。

点击LeftJustify之前

点击之后

使用特权

评论回复
48
GoldSunMonkey|  楼主 | 2011-10-29 14:09 | 只看该作者
在Common Address中可以观察和设置初始地址。想配置任一个独立的端口地址,需到Advanced标签栏下
Address选项选择。

使用特权

评论回复
49
GoldSunMonkey|  楼主 | 2011-10-29 14:11 | 只看该作者
MPMC可以与不同厂商的许多不同种内存一起工作。这个标签栏让你在Memory Part Selector标签下选择与
MPMC连接的内存。
它包含Type选项,Memory manufacturer选项,Memory style选项,Memory density选项,Memory width
选项和Part No. 选项。

使用特权

评论回复
50
GoldSunMonkey|  楼主 | 2011-10-29 14:12 | 只看该作者
过滤的结果在Part No.下拉列表中出现。如果内置的内存数据库正确部分不能使用时,Memory Part
Selector/Part No.下拉列表也会包含一个用户选项。在你选择了CUSTOM选项之后,所有内存参数都可修改,
你能够输入你想要的参数。在你选择了内存部分之后,参数将被自动载入到Selected Memory Info区和
Memory/DIMM Settings标签中去

使用特权

评论回复
51
GoldSunMonkey|  楼主 | 2011-10-29 14:14 | 只看该作者
MPMC最多有8个端口,它们能同时访问内存。因此,在任何必要时候都能有一个仲裁机制来断定哪个端口有优
先权,就显得十分重要了。在Arbitration标签栏中,你可以选择用哪种仲裁机制。
从下拉菜单中选取一种仲裁机制:
Round Robin: 采取循环仲裁模式。
Fixed: 采取确定的优先级模式。
Custom: 在这种模式中,可以定制时间档的数值和每个时间档的仲裁优先级。在每个时间档中仲裁优先级被编
译成描述端口间优先级下降的字符串。

使用特权

评论回复
52
GoldSunMonkey|  楼主 | 2011-10-29 14:16 | 只看该作者
以下将使用Avnet的LX9进行开发的一点讲解。

使用特权

评论回复
53
GoldSunMonkey|  楼主 | 2011-10-31 13:04 | 只看该作者
简单的Microblaze微控制器的概念
SMM(Simple MicroBlaze™ Microcontroller)是基于Microblaze的微控制器,他很容易在FPGA里面实现。
简介:
使用小规模的微控制器来完成设计,可以使用C或者C++, 这有时候会比HDL实现会更有效率。
这次所说的基于MICROBLAZE的微控制器,能很容易使用HDL例化使用。并不需要其他的新的工具来辅助,
直接使用ISE即可。只需要3个文件就能开时进行微控制器的设计。
这个微控制器能有广泛的应用:例如,用户接口控制,通用处理,监控,加密解密,状态机等等。

使用特权

评论回复
54
GoldSunMonkey|  楼主 | 2011-10-31 13:11 | 只看该作者
我们将讲述一个例子:
软硬件需求:
• Xilinx® ML605 board, Xilinx SP605 board, or Xilinx Spartan®-3A Starter Kit
• RS232 serial cable and serial communication utility (HyperTerminal)
• Xilinx Software Development Kit (SDK) 12.1
• Xilinx Integrated Software Environment (ISE®) 12.1
• Xilinx Embedded Development Kit (EDK) 12.1 is optional

使用特权

评论回复
55
GoldSunMonkey|  楼主 | 2011-10-31 13:32 | 只看该作者
关于参考系统的设置说明:
该设计能为Spartan®-6, Spartan-3A/AN, Virtex®-6,and Virtex-5 结构进行初始化,
也能简单修改支持其他的结构。
整个微处理器能被综合成网表文件,能够被HDL设计实例化,并不需要EDK进行设计。
从ISE11.1开始, MicroBlaze的开发环境已经能够单独被SDK支持,能够直接进行C或者C++设计的调试,
而不需要使用EDK.

使用特权

评论回复
56
GoldSunMonkey|  楼主 | 2011-10-31 13:35 | 只看该作者
微控制器需要提前配置两个选项:1. UART选项 2.调试选项
一旦代码被调试完,用户可以更换网表从而减少设计所需要的资源。
仅仅需要三个文件(2个硬件,一个软件),一个完整的32bit的Microblaze微控制器就能被加入到任何FPGA设计中去。

使用特权

评论回复
57
GoldSunMonkey|  楼主 | 2011-10-31 13:36 | 只看该作者
32bit的Microblaze微控制器的特征:
• 32-bit MicroBlaze RISC processor
• 8KB of internal RAM/ROM
• Software application is stored in BRAMs at configuration time
• 32-bit wide Input and Output ports
• 64KB of addressable user space
• Interrupt input
• Optional UART
• Full C/C++ support
• Optional debug support
• Simple hardware interface

使用特权

评论回复
58
GoldSunMonkey|  楼主 | 2011-10-31 13:37 | 只看该作者
SMM 有四个预配置的选项的配置方式:
• SMM with Debug support and UART option
• SMM with Debug support and no UART option
• SMM with UART option and no Debug support
• SMM with no UART option and no Debug support

使用特权

评论回复
59
GoldSunMonkey|  楼主 | 2011-10-31 15:13 | 只看该作者
开发过程中,用户可以使用Debug调试支持,而产品阶段可以选择没有Debug的选项。
微处理器的接口框图:

使用特权

评论回复
60
GoldSunMonkey|  楼主 | 2011-10-31 15:14 | 只看该作者
本帖最后由 GoldSunMonkey 于 2011-10-31 15:16 编辑

关于端口的一些说明:

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则