AstroII架构与开发概述
0赞AstroII架构与开发概述
话说我们都是FPGA Fans,并且我们也都是爱国者,所以京微雅格的出现让我们带着几分质疑或是更确切的说是好奇来探寻这个好像还不太为人所知的名为Astro/AstroII的家伙。这俩兄弟实际上不仅长相没啥差别,连工艺制程也都如出一辙的是0.13um,只是内部打扮上弟弟AstroII略胜一筹而已。在28nm当道的时代,0.13um这样落后的制程真得不值一提,但就像当年的龙芯一样,雅格给我们带来的不是一颗芯片,更是一种希望和期待。
质疑也罢,好奇也罢,期待也罢……无论如何,相信有心往下看的你一定是个爱国者,这也是我们本次活动的基础。但是我们终究要回归理智的,爱国并不能让扶不起的阿斗来个华丽大转身,这年头什么都是要靠实力说话的。芯片也不例外,那么京微雅格目前称为泰山衡山据说后面还有65nm的金山到底又有哪些值得我们玩味的卖点呢?且听特权同学和大家慢慢品味。
吊足大家的胃口了,上面两段废话的目的也就达到了。下面咱可要说点正紧的了,犯困的小伙子们还是先去洗把脸再回来比较好。
这里越过Astro直接和大家谈AstroII未免有些对不起大家,虽然是俩兄弟,但好歹人家也是花大价钱分两次流片的,想必小弟还是会有小弟的可爱之处。这里特权同学先就自己在应用中的体会,和大家对小弟的亮点做些剖析。
话说人有灵、魂、体,认识一个人我们不自然的会从外看到内,虽然我们最关心的是内在的,但是外在的多少也能够让我们摸着一点里面的实质。所以,这个AstroII从外面看,你会发现相比同样封装的哥哥来说,AstroII的可用IO数量有所增加,主要是去除了一些其实真没有太大用处的部分配置管脚。甚至于和业界巨头A或X比,同等情况下的可用IO数绝对让AstroII飘飘然了。既然提到A或X,那么不得不附带提一下Astro两兄弟的省钱之道。算过BOM成本的人都知道,那个四腿的晶振比起两腿的晶体(对不起,对很多人咱只能用这种最初级的分别晶体和晶振的办法)可要贵上数十倍。晶体是毛钱计算的,稍微有点摸样的晶振都是要三五元计算的。而用惯标准单片机做嵌入式产品开发的都用得是晶体,唯独在FPGA中见不到,或者确切的说在Astro降世之前我们是见不到FPGA旁边挂个晶体就能干活的。Astro说“我来了就是要改变这种状况,昂贵的晶振可以点燃我的激情,廉价的晶体也可以带给我四射的活力”。
从时钟,不得不接着讲到内部的时钟管理单元,FPGA内部通常会有个数字的叫DLL、模拟的叫PLL的所谓时钟倍频分频控制管理单元,廉价的Astro/AstroII也不例外,而且他们都能够提供至少3路的输出用于内部的逻辑或是硬核控制器使用。光是AstroII的时钟管理和控制,恐怕后面特权同学也要专门花篇文章好好介绍下,吃过的亏走过的弯路不可以让大家重新再来过的。虽然有点子复杂的样子,但是好歹AstroII在功能方面没有让大家失望。
再说内部架构,1K查找表的FPGA逻辑对于用作扩展的嵌入式系统应用来说基本是绰绰有余了,哪怕是像特权同学一样做了个智能显示模块上的各种存储器控制和图像显示驱动都能胜任,所以,对他,这点信心咱还是要有的。51硬核是一大卖点,它的开发也非常简单,但凡玩过51的朋友都能够稍作点拨便玩转它,Astro下跑过100M,虽然不过Cortex-M0的20-30M水平,好像有些名不名副其实,但好歹是个能跑100M的高速51单片机啊,将就吧。AstroII号称也是能够跑上150M滴,从整个内部系统存储架构的变化上来分析,这个小弟的150M比起大哥的100M,水分明显减少,为什么?先让我喝口水,精彩分享马上继续……
图1 AstroII内部系统架构
先看图2的左右两个单片机存储系统架构,说明一下,Astro内部是有个OTP的,AstroII就取消了这个不是很实用的噱头。左边的Astro如果最终应用代码烧录到OTP中,则性能还是不错的,至少会比那个100M跑出20-30CortexM0的成绩翻一番吧;但是在不使用OTP的情况下,实际上代码是存储在片内的4Mbit SPI Flash里的,从SPI Flash里读程序并运行(通常这种存储应用称之为XIP模式),这个速度可想而知,那个16KB SRAM也帮不上什么大忙。而小弟AstroII则稍作改进便大幅提升SPI Flash的表现,他的妙处在于使用了Fully Shadowed方式启动代码,也就是(虽然示意图里没有画出SPI Flash)8051在启动时首先把所有存储在SPI Flash中的代码完全映射到32KB的SPRAM中,然后代码程序直接在SPRAM上运行。程序运行时,RAM的表现明显优于ROM,所以,AstroII的这一改进是值得称赞的。
图2 处理器存储系统对比
其他的东西,咱也没啥好说的,看那个51架构,外设硬核,用上了才有感觉。而KeilC就能够完全胜任AstroII的所有51软件开发,甚至接上JTAG还能够进行软仿。硬件逻辑的开发则需要借助于京微雅格自主开发的Primace软件了,后面会逐个介绍。