原创 【转】FPGA三国志-第三篇/SOPC篇1

2010-11-18 22:51 1289 4 4 分类: FPGA/CPLD
PLD的重新定义PLD是什么,Programmable Logic Device. 当然今天应该换个称呼了:Processor+ Logic+DSP了,世界就是这样不停的变化来维持他的稳定。
    表1列出了Altera?可编程解决方案的主要历史创新发展过程。,可以看到在2000年的时候,FPGA的厂商已经开始在嵌入式微处理器方面开始崭露头脚。 当然起初引来的也有一片哗然。 说效率低下,难以开发。 新鲜事物的诞生总是要经过这样的阵痛期。
    在2002年,就有众多厂家出来声称都支持嵌入式软核CPU。 甚至也和当时流行的8051 turbo以及一些ARM进行比较。


表1. 在 PLD 业界的率先创新
年度技术发展里程碑在PLD业界的率先创新
2008Stratix ? IV FPGA业界的首款40-nm FPGA,具有最高的密度、最好的性能、最低的功耗、最大的收发器带宽(高达8.5-Gbps 的收发器),并为PCI Express Gen 1/2提供硬核知识产权(IP)模块。
2007ArriaTM GX FPGAs业界的首款低成本,基于收发器的中端,协议优化的FPGA。
2007Cyclone? III FPGA 业界的首款低成本65nm FPGA,前所未有地同时实现了低功耗、低成本和高性能。
2006Stratix III FPGA 65nm FPGA以更高的密度和性能支持高级集成,实现更复杂的产品。
2006Quartus? II 软件自然支持SDC设计约束
2006C2H 编译器嵌入式处理器的首款自动ANSI C至寄存器级(RTL)生成工具
2006 Stratix II GX FPGA 速度最快,密度最大的90nm FPGA架构,含有工作在622Mbps至6.375Gbps的20个低功耗收发器。
2005 HardCopy?  II 结构化 ASIC 精细粒度体系结构;从90nm Stratix II FGPA原型无缝移植。
2005Cyclone II FPGA 90nm FPGA,业界首款低成本FPGA,成本降低30%,密度提高3倍。
2004Stratix II FPGA 90nm FPGA,含有名为ALM的8输入“分段式”查找表(LUT),以此替代了4输入LUT体系结构。
2003Quartus II 软件可编程逻辑软件包,提供Tcl脚本支持。
2003 Stratix GX FPGA 0.13μm FPGA,分块收发器体系结构。
2003 HardCopy 结构化 ASIC 业界唯一原型至量产0.13μm的完整解决方案
2003 Stratix FPGA 0.13μm、300mm、高速高密度FPGA
2002Quartus II 软件可编程逻辑设计工具包,支持Linux。
2002Cyclone FPGA 世界上成本最低的FPGA(0.13μm)
2002SOPC Builder 第一款FPGA自动系统生成工具
2002Stratix FPGA 世界上第一款带有嵌入式DSP模块的FPGA
2001 HardCopy APEX TM 结构化 ASIC FPGA 首次无缝移植至低成本结构化ASIC
2001系统互联架构第一款自动生成的互联架构,支持同时主机/从机操作。
2001 Quartus II 软件推出Quartus II 设计软件
2001MercuryTM FPGA 世界上第一款带有嵌入式收发器的0.18μm FPGA
2000基于 ARM? 的 Excalibur TM 器件世界上第一款带有硬件嵌入式处理器的 FPGA
2000 Nios? 嵌入式处理器世界上第一款嵌入式处理器,适合可编程逻辑应用。

处理器嵌入在FPGA中,需要什么样的温床?
    的确,在推出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,那才是真正意思上的软核。 那究竟什么样子才好呢?



  1. 可以增加多个核来弥补自己速度上的缺陷,提高更多的并行处理
  2. 灵活的总线结构,可以连接高速,慢速,master,salve的模块
  3. 可以将客制化的逻辑,有效集成到CPU的指令体系。
  4. 有面向不同应用,可以进行裁剪的CPU core
  5. 方便片上调试的环境
  6. 可以快速自动实现外设资源冲突仲裁的机制
  7. 可以实现以软代硬,或者以硬代软,在软硬间转化速度与资源的偏重

    如果有以上的特性,那相信留给设计者的只有是无限的遐想空间。


FPGA上的CPU,有太多的元素,你知道吗?
    我们从哪里开始讲呢,准备从算盘开始讲CPU,很多人说,我是不是太无聊了呢?听我明天说给你听!看似简单的算盘,绝对孕育着无比的大智慧。 看是简单的Avalon,也同样有很多玄机。 那就是变变变。
    来自Xilinx的消息,关于CPU在FPGA设计中的一些预测
 


神奇的算盘
    上回说到算盘。 实际上大家应该都见过这个了不起的发明,只是他出现在你的记忆中的次数越来越少,就忘记了,实际上,很多伟大之处在很早就有历史可以证明的。 看看你平时见到的算盘。 
 
    算盘的妙处和Altera的LE排列布局非常相似,或许是巧合吧。
但是这里的偶然也有些必然。 或许我们有一天说,FPGA的结构最早是源于我国的。 哈哈,玩笑啊。



  1. 可以增加多个核来弥补自己速度上的缺陷,提高更多的并行处理
    一个算盘是算盘,级联起来还是算盘,可以横向,也可以纵向
  2. 灵活的总线结构,可以连接高速,慢速,master,salve的模块
    算盘是平行也是并行结构,上面的有两个珠子,下面5个,2也可以代表10,5也可以代表10,同时,进位时也可以暂时存储在高档位,也可以留在本档。进位链和Altera LE的进位布局也是一样。

看一个更久的照片,当然这个也可以代表Cyclone的layout了。
 


Avalon的奥秘
    总线结构:
全交叉,部分交叉型(适合FPGA中的嵌入总线!)
    Xilinx的是共享总线型。仍旧属于传统型设计,只是将其搬移到了FPGA中。 
 
处理器接口主要抽象为:



  1. 共享寄存器
  2. RAMs
  3. FIFOs

回头看Avalon:
 


上面看起来,这两个softcore都差不多,看了下面的特点,你就有答案了。


Selecting Hardware Architecture
Bus



  • achieve relatively high clock frequencies
  • expense of little
  • no concurrency
  • common arbitration unit.
  • all masters compete for access to

Full Crossbar Switch-NiosII Avalon



  • concurrent transactions
  • flexible
  • high throughput
  • large multiplexers
  • more masters and slaves are added
  • avoid large crossbar switches

Partial Crossbar Switch--Avalon is okey



  • connectivity to a subset of the slaves
  • provides the optimal connectivity
  • operates at higher clock frequencies
  • interconnect fabric consumes fewer resources.
  • ideal for ASIC or
  • FPGA interconnect structures
  • slave side arbitration.

Streaming-Avalon Streaming Map



  • high speed data transfers
  • point-to-point connections between source and sink
  • eliminating arbitration

Dynamic Bus Sizing
Understanding Concurrency
Create Multiple Masters



  • General purpose processors, such as Nios II
  • DMA engines
  • Communication interfaces, such as PCI Express

Create Separate Datapaths
Use DMA Engines



  • data width
  • clock frequency
  • more DMA engines

Include Multiple Master or Slave Ports



  • increases the concurrency


Create Separate Sub-Systems
Increasing Transfer Throughput
increasing the transfer efficienc
lower frequency devices can be used
Using Pipelined Transfers



  • Maximum Pending Reads
  • Selecting the Maximum Pending Reads Value

Pipelined Read Masters
Increasing System Frequency
strategy



  • introduce bridges to reduce the amount of logic
  • increase the clock frequency.

Tatic
Use Pipeline Bridges



  • Master-to-Slave Pipelining
  • Slave-to-Master Pipelining
  • waitrequest Pipelining

Use a Clock Crossing Bridge
Consequences of Using Bridges



  •  Increased Latency
  •  Limited Concurrency
  •  Address Space Translation

Reducing Logic Utilization
Reducing Power  Utilization
Reduce Clock Speeds of Non-Critical Logic
Clock Crossing Bridge
Avalon-MM master ports  operating at a higher frequency to slave ports running a a lower  frequency



  • PIOs
  • UARTs (JTAG or RS-232)
  • System identification (SysID)
  • Timers
  • PLL (instantiated within SOPC Builder)
  • Serial peripheral interface (SPI)
  • EPCS controller
  • Tristate bridge and the components connected to the bridge

文章评论0条评论)

登录后参与讨论
我要评论
0
4
关闭 站长推荐上一条 /2 下一条