PLD的重新定义PLD是什么,Programmable Logic Device. 当然今天应该换个称呼了:
了,世界就是这样不停的变化来维持他的稳定。
表1列出了Altera®可编程解决方案的主要历史创新发展过程。,可以看到在2000年的时候,FPGA的厂商已经开始在嵌入式微处理器方面开始崭露头脚。 当然起初引来的也有一片哗然。 说效率低下,难以开发。 新鲜事物的诞生总是要经过这样的阵痛期。
在2002年,就有众多厂家出来声称都支持嵌入式软核CPU。 甚至也和当时流行的8051 turbo以及一些ARM进行比较。
年度 |
技术发展里程碑 |
在PLD业界的率先创新 |
2008 |
Stratix ® IV FPGA |
业界的首款40-nm FPGA,具有最高的密度、最好的性能、最低的功耗、最大的收发器带宽(高达8.5-Gbps 的收发器),并为PCI Express Gen 1/2提供硬核知识产权(IP)模块。 |
2007 |
ArriaTM GX FPGAs |
业界的首款低成本,基于收发器的中端,协议优化的FPGA。 |
2007 |
Cyclone® III FPGA |
业界的首款低成本65nm FPGA,前所未有地同时实现了低功耗、低成本和高性能。 |
2006 |
Stratix III FPGA |
65nm FPGA以更高的密度和性能支持高级集成,实现更复杂的产品。 |
2006 |
Quartus® II 软件 |
自然支持SDC设计约束 |
2006 |
C2H 编译器 |
嵌入式处理器的首款自动ANSI C至寄存器级(RTL)生成工具 |
2006 |
Stratix II GX FPGA |
速度最快,密度最大的90nm FPGA架构,含有工作在622Mbps至6.375Gbps的20个低功耗收发器。 |
2005 |
HardCopy®II 结构化 ASIC |
精细粒度体系结构;从90nm Stratix II FGPA原型无缝移植。 |
2005 |
Cyclone II FPGA |
90nm FPGA,业界首款低成本FPGA,成本降低30%,密度提高3倍。 |
2004 |
Stratix II FPGA |
90nm FPGA,含有名为ALM的8输入“分段式”查找表(LUT),以此替代了4输入LUT体系结构。 |
2003 |
Quartus II 软件 |
可编程逻辑软件包,提供Tcl脚本支持。 |
2003 |
Stratix GX FPGA |
0.13µm FPGA,分块收发器体系结构。 |
2003 |
HardCopy 结构化 ASIC |
业界唯一原型至量产0.13µm的完整解决方案 |
2003 |
Stratix FPGA |
0.13µm、300mm、高速高密度FPGA |
2002 |
Quartus II 软件 |
可编程逻辑设计工具包,支持Linux。 |
2002 |
Cyclone FPGA |
世界上成本最低的FPGA(0.13µm) |
2002 |
SOPC Builder |
第一款FPGA自动系统生成工具 |
2002 |
Stratix FPGA |
世界上第一款带有嵌入式DSP模块的FPGA |
2001 |
HardCopy APEX TM 结构化 ASIC |
FPGA 首次无缝移植至低成本结构化ASIC |
2001 |
系统互联架构 |
第一款自动生成的互联架构,支持同时主机/从机操作。 |
2001 |
Quartus II 软件 |
推出Quartus II 设计软件 |
2001 |
MercuryTM FPGA |
世界上第一款带有嵌入式收发器的0.18µm FPGA |
2000 |
基于 ARM® 的 Excalibur TM 器件 |
世界上第一款带有硬件嵌入式处理器的 FPGA |
2000 |
Nios® 嵌入式处理器 |
世界上第一款嵌入式处理器,适合可编程逻辑应用。 |
的确,在推出Nios soft processor 两年之后,在我们周边也开始陆续有开始吃螃蟹的了。 但是,还是回到结构的老话题上,来谈论一下为什么这个时候出现了由FPGA制造商推出的CPU,实际上在1997年,就已经有什么FPGACPU的说法甚嚣尘上。 而且也有人在Xilinx和Altera上面分别实现了原形。
开始在FPGA嵌入大块RAM的时候,很多人抨击这种结构,只是一个动物园里面的老虎,实际上就是和猫差不多的杀伤力。 不可以否认,它不如分布式RAM来的灵活,但是它可以作为一些Cache,或者是紧耦合的RAM,还有就是它的规模在容量增加的时候,仍旧有很好的速度,那就可以作为CPU的Cache了。 Altera的RAM都是做在同一列的,很方便级联。 另外总线宽度也很容易更改。
还有就是CPU里面总是有很多总线,内部总线。 由于丰富的行联线的存在,在几列行资源里,就可以轻松集成RAM,CPU要的逻辑资源,以及总线的结构。 这样,CPU也就顺利的在FPGA的世界里粉墨登场了。 虽然起初只是16bit的。
2002年,Altera的开发软件已经趋于稳定,可以说已经很适合自己产品的结构,而且布线效率非常高。同时Altera的Nios也上升为NiosII,这个时候NiosII已经蜕变为美丽蝴蝶---一个32bit的RISC CPU。 而且Altera又采用了非对称的机构实现了革命性的Avlon互联体系。 关于这个体系的由非对称可以覆盖对称的,或不对称性的应用,我们以后详细聊。 总而言之。 如果再有一款更好结构的低成本的FPGA,那无异于在FPGA市场上刮起一场飓风!
Xilinx有Microblaze,其他的有ARM的核,实际上FPGA上实现的CPU,不是由一个CPU的内核来决定他的应用,而是谁有最好的互联体系,能和外围设备,和FPGA中的RAM,乘法器,以及其他定制逻辑更好桥接,粘合成一个SOPC,那才是真正意思上的软核。 那究竟什么样子才好呢?
如果有以上的特性,那相信留给设计者的只有是无限的遐想空间。
我们从哪里开始讲呢,准备从算盘开始讲CPU,很多人说,我是不是太无聊了呢?听我明天说给你听!看似简单的算盘,绝对孕育着无比的大智慧。 看是简单的Avalon,也同样有很多玄机。 那就是变变变。
来自Xilinx的消息,关于CPU在FPGA设计中的一些预测
上回说到算盘。 实际上大家应该都见过这个了不起的发明,只是他出现在你的记忆中的次数越来越少,就忘记了,实际上,很多伟大之处在很早就有历史可以证明的。 看看你平时见到的算盘。
算盘的妙处和Altera的LE排列布局非常相似,或许是巧合吧。
但是这里的偶然也有些必然。 或许我们有一天说,FPGA的结构最早是源于我国的。 哈哈,玩笑啊。
一个算盘是算盘,级联起来还是算盘,可以横向,也可以纵向
算盘是平行也是并行结构,上面的有两个珠子,下面5个,2也可以代表10,5也可以代表10,同时,进位时也可以暂时存储在高档位,也可以留在本档。进位链和Altera LE的进位布局也是一样。
看一个更久的照片,当然这个也可以代表Cyclone的layout了。
总线结构:
Xilinx的是共享总线型。仍旧属于传统型设计,只是将其搬移到了FPGA中。
处理器接口主要抽象为:
回头看Avalon:
上面看起来,这两个softcore都差不多,看了下面的特点,你就有答案了。
Selecting Hardware Architecture
Bus
Full Crossbar Switch-NiosII Avalon
Partial Crossbar Switch--Avalon is okey
Streaming-Avalon Streaming Map
Dynamic Bus Sizing
Understanding Concurrency
Create Multiple Masters
Create Separate Datapaths
Use DMA Engines
Include Multiple Master or Slave Ports
Create Separate Sub-Systems
Increasing Transfer Throughput
increasing the transfer efficienc
lower frequency devices can be used
Using Pipelined Transfers
Pipelined Read Masters
Increasing System Frequency
strategy
Tatic
Use Pipeline Bridges
Use a Clock Crossing Bridge
Consequences of Using Bridges
Reducing Logic Utilization
Reducing PowerUtilization
Reduce Clock Speeds of Non-Critical Logic
Clock Crossing Bridge
Avalon-MM master portsoperating at a higher frequency to slave ports running a a lowerfrequency