基于IP核的FPGA 设计方法

发布者:seanxnie最新更新时间:2012-11-04 来源: 21ic关键字:IP核  FPGA 手机看文章 扫描二维码
随时随地手机看文章
   

几年前设计专用集成电路(ASIC) 还是少数集成电路设计工程师的事, 随着硅的集成度不断提高,百万门的ASIC 已不难实现, 系统制造公司的设计人员正越来越多地采用ASIC 技术集成系统级功能(System L evel In tegrete - SL I) , 或称片上系统(System on a ch ip ) , 但ASIC 设计能力跟不上制造能力的矛盾也日益突出。现在设计人员已不必全部用逻辑门去设计ASIC, 类似于用集成电路( IC) 芯片在印制板上的设计,ASIC 设计人员可以应用等效于印制板上IC 芯片的功能模块, 称为核(core)、或知识产权( IP) 宏单元进行系统设计, 这就是基于核的设计方法。CPU、存储器、总线控制器、接口电路、DSP 等都可成为核。但是ASIC 设计与印制板(PCB) 设计有很大区别,ASIC 必须用EDA 工具进行硬件设计, 主要问题都是通过计算机仿真解决, 而不能象印制板设计那样通过实验调试解决, 另外ASIC 的制造还需要数量可观(一般数万美元) 的不可重复工程费用(NRE)。80年代后期出现的现场可编程门阵列(FPGA ) 和复杂可编程逻辑器件(CPLD) 是ASIC 的一种, 其优点是在制造厂家提供的FPGA 或CPLD 芯片上, 可由设计工程师对其进行现场编程完成ASIC 的最后设计, 而不需昂贵的NRE 费。现在FPGA 的规模已达到百万门, 如XILINX 公司的V irtex 系列, 完全可以实现片上系统,其设计方法将逐步转向核基设计。

1 核的分类和特点

核是一种预定义的并经过验证的复杂功能模块, 它可以集成到系统设计中。核基设计主要特点是可重复使用已有设计模块, 缩短设计时间, 减少设计风险, 通过高层的集成可望提高整个系统的性能。在FPGA 设计中的核分为三种, 如表1所示:

表1 核的分类和特点

硬核

(hard core)

预定义的已布局布线的模块 不能修改设计, 必须采指定实现技术 时序性能有保证

固核

(firm core) HDL 源码,与实现技术有关的网表 部分功能可以修改, 采用指定的实现技术 关键路径时序可控制

软件

(soft core)

行为级或RTL 级HDL源码 可修改设计,与具体实现技术无关 时序性能无保证, 由使用者确定

硬核是针对特定的实现技术优化的, 它具有不能修改的结构和布局布线, 可作为库元件使用, 且时序性能稳定, 但硬核不能按设计需要修改和调整时序。固核由HDL 源码和与实现技术有关的网表组成, 使用者可按规定增减部分功能。固核的关键路径时序是固定的, 但其实现技术不能更改, 即不同厂家FPGA 的固核不能互换使用。软核是可综合的硬件描述语言(HDL ) 源码, 它与实现技术无关, 可按使用者需要修改, 具有最大的使用灵活性, 但软核的关键路径时序性能无保证, 最终性能主要决定于使用者采用的综合、布局布线和实现技术。

在FPGA 设计中, 由于不同厂家的具体实现技术差别较大, 完全与硬件实现技术无关的软核性能受到很大限制, 而硬核缺少使用的灵活性, 因此作为软、硬核折中的固核使用较多。以上是具有代表性的核的分类, 在实际使用中, 某种功能的核往往以各种形式出现, 由使用者按需要选用, 软核也不仅只有HDL 源码, 还包括用于功能测试的行为模型和测试向量, 用于指导综合的约束文件。

2 核基FPGA 设计方法简介

在核基设计中, 一个完整的设计主要由两部分组成, 一部分是核, 如图1中的MCU、RAM , 另一部分是用户自己定义的逻辑电路。按系统设计的要求将这些功能模块连接在一起就完成了芯片的设计,各个核或功能块的连接目前还没有统一的标准, 因不同的设计而定, 一般应满足一定的时序要求。作为核基设计的第一步是选择合适的核, 这主要从核的功能、性能可靠性和实现技术几方面来选择。

 

核基设计芯片示意图

 

图1 核基设计芯片示意图[page]

 

   

一个核首先要有核的功能描述文件, 用于说明该核的功能、时序要求等, 如图2所示, 其次还要包括设计实现和设计验证两个方面的文件, 即不但要有实现核功能的寄存器传输级(RTL ) 源码或网表, 还要有用于核实现后验证逻辑功能正确性的仿真模型和测试向量。硬核的实现较简单, 类似于PCB 设计中IC 芯片的使用, 软核的使用情况较为复杂, 实现后的性能与使用者的具体实现方式有关, 为保证软核的性能, 软核提供者一般还提供综合描述文件, 用于指导软核的综合, 固核的使用介于上述二者之间。

 

核由设计实现和设计验证组成

 

图2 核由设计实现和设计验证组成 很多核提供者都提供核的评价环境和演示、开发板,便于用户了解核的功能和使用。

核基FPGA 设计流程如图3所示。设计输入部分包括:

1) 用户设计逻辑、软核、固核或硬核仿真模型的输入,

2) 功能仿真,

3) 逻辑综合。其中仿真模型是一个行为级模型, 只用作功能仿真, 不进行综合。

 

核基FPGA 设计流程

 

图3 核基FPGA 设计流程

设计的输入一般是采用HDL 语言, 如VHDL、V erilog 等, 输入完设计和仿真模型后就可进行功能仿真, 当功能仿真完成后, 就可进行逻辑电路的综合。

用户逻辑和软核的综合应加合理的时序约束, 以满足设计的要求, 约束条件可由综合文件(Synthesis Script ) 给出。完成设计输入后进入设计实现阶段,在此阶段固核的网表和设计约束文件, 用户综合出的网表和设计约束文件一起输入给FPGA 布局布线工具, 完成FPGA 的最后实现, 并产生时序文件用于时序仿真和功能验证。最后进入设计验证阶段,用静态时序分析判定设计是否达到性能要求, 对比功能仿真结果和时序仿真结果, 验证设计的时序和功能是否正确。若设计的性能不能达到要求, 需找出影响性能的关键路径, 并返回延时信息, 修改约束文件, 对设计进行重新综合和布局布线, 如此重复多次直到满足设计要求

为止。若重复多次还不能达到设计要求, 则需修改设计或采用其它实现技术。

3 软核的设计及使用

由于FPGA 的硬件技术迅速发展, 硬件资源越来越丰富, 速度越来越快, 使软核资源利用率不高、工作速度较低等不足得到很大的弥补, 软核在核基设计中作用越来越大。其主要优点是功能与实现技术无关, 使用灵活。这样我们可以很方便地在不同的实现技术下使用软核。如用X IL INX FPGA 实现的软核, 不需改动设计, 重新综合后就可以用ACTEL FPGA 实现, 设计实现的灵活性大为提高。但软核的性能受实现技术影响还是很大, 怎样保证软核达到预想的性能是目前需要解决的难题。国外近年提出了与实现技术无关的可综合软核的思想, 希望通过对编制软核的HDL 源码的某种限制, 并结合综合工具的时序约束功能, 达到部分控制软核性能的目的。如限制软核只能采用严格的同步逻辑设计, 没有反馈环路、多时钟路径、三态逻辑、锁存器和异步置位复位触发器, 只使用D 触发器和逻辑门。这样借助于综合工具, 可有效地控制软核关键路径的延时,并预测具体实现技术中软核的性能。当然这是以牺牲一定的FPGA 逻辑资源为代价的, 但随着硅技术的发展, 硬件资源十分丰富, 用一定的硬件资源浪费去换取设计灵活性提高是值得的, 正如在PC 机软件设计中, 现在已很少有人过多考虑程序占用的存储空间一样。

本文作者按照上述软核设计思想, 采用全同步逻辑设计, 只使用D 触发器和逻辑门, 实现了与PIC16C57兼容的8位微控制器的设计。顶层结构如图4, 采用哈佛结构, 取指和指令执行并行工作, 除少数几条程序跳转指令外, 全部为单时钟周期指令。程序存储器ROM 一般放在FPGA 外, 若ROM 中指令较少, 也可放在FPGA 内。数据总线采用多路选择器形式, 以适应不同的实现技术。指令寄存器和特殊功能寄存器, 包括IO 端口寄存器、状态寄存器、程序计数器等, 都由D 触发器构成, 通用寄存器采用了FPGA 的RAM 模块, 指令译码和算数逻辑单元由组合逻辑门构成。

 

8位微控制器顶层结构图

 

图4 8位微控制器顶层结构图

一个核首先要有核的功能描述文件, 用于说明该核的功能、时序要求等, 如图2所示, 其次还要包括设计实现和设计验证两个方面的文件, 即不但要有实现核功能的寄存器传输级(RTL ) 源码或网表, 还要有用于核实现后验证逻辑功能正确性的仿真模型和测试向量。硬核的实现较简单, 类似于PCB 设计中IC 芯片的使用, 软核的使用情况较为复杂, 实现后的性能与使用者的具体实现方式有关, 为保证软核的性能, 软核提供者一般还提供综合描述文件, 用于指导软核的综合, 固核的使用介于上述二者之间。

 

核由设计实现和设计验证组成

 

图2 核由设计实现和设计验证组成 很多核提供者都提供核的评价环境和演示、开发板,便于用户了解核的功能和使用。

核基FPGA 设计流程如图3所示。设计输入部分包括:

1) 用户设计逻辑、软核、固核或硬核仿真模型的输入,

2) 功能仿真,

3) 逻辑综合。其中仿真模型是一个行为级模型, 只用作功能仿真, 不进行综合。

 

核基FPGA 设计流程

 

图3 核基FPGA 设计流程

设计的输入一般是采用HDL 语言, 如VHDL、V erilog 等, 输入完设计和仿真模型后就可进行功能仿真, 当功能仿真完成后, 就可进行逻辑电路的综合。

用户逻辑和软核的综合应加合理的时序约束, 以满足设计的要求, 约束条件可由综合文件(Synthesis Script ) 给出。完成设计输入后进入设计实现阶段,在此阶段固核的网表和设计约束文件, 用户综合出的网表和设计约束文件一起输入给FPGA 布局布线工具, 完成FPGA 的最后实现, 并产生时序文件用于时序仿真和功能验证。最后进入设计验证阶段,用静态时序分析判定设计是否达到性能要求, 对比功能仿真结果和时序仿真结果, 验证设计的时序和功能是否正确。若设计的性能不能达到要求, 需找出影响性能的关键路径, 并返回延时信息, 修改约束文件, 对设计进行重新综合和布局布线, 如此重复多次直到满足设计要求

为止。若重复多次还不能达到设计要求, 则需修改设计或采用其它实现技术。

3 软核的设计及使用

由于FPGA 的硬件技术迅速发展, 硬件资源越来越丰富, 速度越来越快, 使软核资源利用率不高、工作速度较低等不足得到很大的弥补, 软核在核基设计中作用越来越大。其主要优点是功能与实现技术无关, 使用灵活。这样我们可以很方便地在不同的实现技术下使用软核。如用X IL INX FPGA 实现的软核, 不需改动设计, 重新综合后就可以用ACTEL FPGA 实现, 设计实现的灵活性大为提高。但软核的性能受实现技术影响还是很大, 怎样保证软核达到预想的性能是目前需要解决的难题。国外近年提出了与实现技术无关的可综合软核的思想, 希望通过对编制软核的HDL 源码的某种限制, 并结合综合工具的时序约束功能, 达到部分控制软核性能的目的。如限制软核只能采用严格的同步逻辑设计, 没有反馈环路、多时钟路径、三态逻辑、锁存器和异步置位复位触发器, 只使用D 触发器和逻辑门。这样借助于综合工具, 可有效地控制软核关键路径的延时,并预测具体实现技术中软核的性能。当然这是以牺牲一定的FPGA 逻辑资源为代价的, 但随着硅技术的发展, 硬件资源十分丰富, 用一定的硬件资源浪费去换取设计灵活性提高是值得的, 正如在PC 机软件设计中, 现在已很少有人过多考虑程序占用的存储空间一样。

本文作者按照上述软核设计思想, 采用全同步逻辑设计, 只使用D 触发器和逻辑门, 实现了与PIC16C57兼容的8位微控制器的设计。顶层结构如图4, 采用哈佛结构, 取指和指令执行并行工作, 除少数几条程序跳转指令外, 全部为单时钟周期指令。程序存储器ROM 一般放在FPGA 外, 若ROM 中指令较少, 也可放在FPGA 内。数据总线采用多路选择器形式, 以适应不同的实现技术。指令寄存器和特殊功能寄存器, 包括IO 端口寄存器、状态寄存器、程序计数器等, 都由D 触发器构成, 通用寄存器采用了FPGA 的RAM 模块, 指令译码和算数逻辑单元由组合逻辑门构成。

 

8位微控制器顶层结构图

 

图4 8位微控制器顶层结构图[page]

 

  

实现的主要功能:

(1) 指令与P IC16C57兼容。

(2) 三个8位双向IO 口。

(3) 程序存储器2K X 12 B IT。

(4) 内部RAM 共32个, 7个为特殊寄存器。

(5) 二级子程序堆栈。

(6) 未实现指令: POT ION、SLEEP、CLRWDT。

(7) 单相时钟。该软核用VHDL 语言完成设计的输入, 用EXPRESS 综合工具进行综合, 采用Xilinx 4000系列FPGA 实现, 不包括ROM 约需2500逻辑门, 时钟频率5MHz, 即运行一条指令200ns。

上述软核在综合、布局布线时, 只给予了简单的时序约束, 当需要改用其它FPGA 实现时, 可用综合工具重新综合、布局布线, 一般不需改变时序约束文件就能达到上述性能, 因此当时钟频率不太高时,软核的使用还是较为方便的。但当时钟频率较高时,虽然采用了与实现技术无关的可综合软核的思想,软核的性能还是与使用者及其采用的实现技术紧密相关, 要真正做到与实现技术无关是很困难的。此时软核的使用者必须清楚其使用的复杂性, 最好能得到软核提供者的技术支持, 许多软核提供者都提供这方面的服务。

4 总结

随着硅技术的发展, 集成电路芯片的硬件生产能力迅速提高, 几年前FPGA、CPLD 的规模还在万门左右, 现在ALTERA 公司已宣布将推出250万门的CPLD。如此快的发展速度, 使集成电路设计能力严重不足, 只靠增加设计人员, 不从设计方法上改进, 提高设计的效率, 是不可能解决问题的。因此基于核的设计、设计重利用等技术, 近年来在国外发展很快, 并成立了相应的标准化组织, 如VSIA (Virtual Socket Interface Alliance) , 专门从事核或称IP模块的互连标准研究, 以使核的使用就象在印制板上使用集成电路块一样方便。一个片上系统的时代即将到来, 电子工程师应跟上这个时代发展的潮流,正如以前电子管系统向晶体管系统, 分离元件系统向集成电路系统发展一样。

关键字:IP核  FPGA 引用地址:基于IP核的FPGA 设计方法

上一篇:可编程单芯片系统的封装问题
下一篇:基于IP核的FPGA 设计方法

推荐阅读最新更新时间:2024-05-02 22:25

FPGA的多路可控脉冲延迟系统
  在科学研究、通信和一些自动控制中,经常需要精确定时的连续脉冲信号,用于产生测试信号或控制用的时序。脉冲延迟的基本方法可分为数字方法和模拟方法。数字方法采用计数器或存储器实现延迟控制,其缺点是无法满足高分辨率的要求;模拟方法采用专用的脉冲延迟器件实现延迟控制,其缺点是抗干扰效果不好,容易产生抖动和电压不稳等问题。于是我们提出构建数模结合的系统,实现连续脉冲信号的高分辨率延迟。   1 系统功能   本系统拟定对频率范围在1~50 kHz左右的TTL电平脉冲序列进行多路延迟处理。各路延迟时间分别由单片机动态设定,最大延迟时间为1ms,最大分辨率为O.15 nS级。   2 方案选择   因为所要处理的脉冲序列的脉冲间隔
[嵌入式]
<font color='red'>FPGA</font>的多路可控脉冲延迟系统
Xilinx推出赛灵思基础目标设计平台
  赛灵思公司(Xilinx, Inc.)今天宣布隆重推出赛灵思基础目标设计平台, 致力于加速基于其Virtex®-6 和 Spartan®-6 现场可编程门阵列 (FPGA) 的片上系统 (SoC) 解决方案的开发。这款基础级目标设计平台在完全集成的评估套件中融合了 ISE® 设计套件 11.2版本、扩展的IP系列以及面向Virtex-6或Spartan-6 FPGA的预验证参考设计,可帮助设计团队大幅缩短开发时间,从而集中工程设计资源以提高产品差异化。   新型 Virtex-6 FPGA 与 Spartan-6 FPGA 评估套件是赛灵思 在2009 年内将推出的一系列套件中的首批产品,旨在利用赛灵思推出的最新一代可编程技
[嵌入式]
FPGA开发套件加速全高清HDR摄像机设计
      为了向摄像机生产商提供高质量的HDR摄像机参考设计,帮助其快速开始基于FPGA的高清摄像机设计开发,莱迪思半导体(Lattice)日前发布了其最新的HDR-60摄像机开发套件。这是一款基于LatticeECP3 FPGA系列可量产的高清摄像机开发系统,预载入了莱迪思合作伙伴Helion GmbH带有即插即用的评估版图像信号处理(ISP)流水线的IP核。该IP核可实现每秒60帧的1080p,并带有2D降噪和高动态范围(HDR)。   Lattice负责市场业务的副总裁Douglas Hunter表示,HDR-60套件的价值就在于“实现了最低系统材料成本的同时,还满足了原有的系统基础结构并保障了客户的投资”。据悉,该开
[嵌入式]
赛灵思讲解ADAS硬件开发痛点及解决之道
高级驾驶员辅助系统(ADAS)的复杂性正呈指数级增长,因为越来越多的传感器和算法结合在一起,以提供更大的功能性和安全性。许多高级计算芯片,包括FPGA,正被用来解决这些问题。 我与Xilinx(赛灵思)汽车高级主管Willard Tu谈了开发ADAS和自动驱动系统的难点和最佳实践。特别讨论了Xilinx的汽车产品及其自适应计算加速平台(ACAP)。 Willard Tu,Xilinx汽车业务高级总监 Xilinx的汽车产品解决了先进汽车系统和应用的独特需求?你能简要介绍一下公司在这个领域的历史吗? Xilinx已经与汽车客户和合作伙伴合作了20多年,从将我们的设备用于信息娱乐和驾驶员信息系统开始。早期,Xilin
[嵌入式]
赛灵思讲解ADAS硬件开发痛点及解决之道
基于MPC8260和FPGA的DMA接口设计
引言   在基于软件无线电的某无线通信信号侦收平台的设计中,天线接收到的信号经过变频器处理和A/D变换之后,经过高速通道把采集的信号送入主控板进行数据分发处理。系统的结构框图如图1所示。 图1 主控板的系统结构框图   主控板的硬件核心是嵌入式微处理器MPC8260,负责系统软件的加载、数据的分发以及与外界命令控制的交互。软件上,采用高性能的VxWorks嵌入式实时操作系统。从天线接收到的射频信号经过变频和A/D变换之后作为数据源连接到FPGA,FPGA对接收到的数据进行中频变换和信道估计等预处理后,在CPU的控制下将数据传输到本地内存,最后CPU对数据打包后进行快速分发。因此,将40~50 Mbps的高速数据流从FPGA传给CP
[单片机]
基于MPC8260和<font color='red'>FPGA</font>的DMA接口设计
基于CPLD/FPGA的CMI编码设计与实现
  0 引言   CMI码是传号反转码的简称,它是一种应用于PCM四次群和光纤传输系统中的常用线路码型,具有码变换设备简单、有较多的电平跃变,含有丰富的定时信息,便于时钟提取,有一定的纠错能力等优点。   在高次脉冲编码调制终端设备中广泛应用作接口码型,在速率低于8 448 Kb/s的光纤数字传输系统中也被建议作为线路传输码型。   本文针对光纤通信传输码型的要求和CMI码的编码原理,介绍了一种以EPM系列7064芯片为硬件平台,以Max+PlusⅡ为软件平台,以VHDL为开发工具,适合于CPLD实现的CMI编码器的设计方案。   1 CMI码的编码规则   CMI编码规则如表1所示。   在CMI编码中,输入码字0
[嵌入式]
莱迪思半导体为ECP5™ FPGA产品系列添加新成员
莱迪思为低功耗、小尺寸的ECP5 FPGA产品系列添加新成员 采用10x10 mm封装,首款支持5G SERDES以及具备85K LUT的器件 12K LUT器件具备成本优化的可编程IO桥接功能 近期,莱迪思半导体公司(NASDAQ: LSCC)宣布低功耗、小尺寸,用于互连和加速应用的ECP5 FPGA产品系列迎来了新成员。本次新增的产品与ECP5 FPGA的引脚完全兼容,使得OEM厂商能够实现无缝升级,满足工业、通信和消费电子等市场上不断变化的接口需求。 ECP5-5G 莱迪思的ECP5-5G产品系列独家支持5G SERDES和高达85K LUT,并采用小尺寸10x10 mm封装。ECP5-5G器件支持多种5G
[嵌入式]
​AMD将用FPGA干什么?
近日,AMD 已经完成了对 Xilinx 的收购,由于过去一年半时间里 AMD 的股价上涨,最终成本接近 490 亿美元,而不是最初在 2020 年 10 月宣布该交易时预计的 350 亿美元。 现在,随着 AMD 获得监管机构的批准并花光了所有“钱”——稀释后的市值与实际现金不同,但你可以用它买东西——很自然,收购完成后, CPU 和GPU 设计人员不仅可以使用作为 Xilinx 器件核心的 FPGA 可编程逻辑,还可以使用在所有 FPGA 混合中变得普遍的晶体管硬块,例如 DSP 引擎、AI 加速器、内存控制器、I /O 控制器和其他类型的互连 SerDes。 AMD 需要很长时间才能建立一支工程师团队,这些工程师团队
[半导体设计/制造]
​AMD将用<font color='red'>FPGA</font>干什么?
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved