1、功能定义/器件选型
一般都采用自顶向下的设计方法,把系统分成若干个基本单元,然后再把每个基本单元划分为下一层次的基本单元,一直这样做下去,直到可以直接使用EDA元件库为止。
2、设计输入
设计输入是将所设计的系统或电路以开发软件要求的某种形式表示出来,并输入给EDA工具的过程。常用的方法有硬件描述语言(HDL)和原理图输入方法等。原理图输入方式是一种最直接的描述方式,在可编程芯片发展的早期应用比较广泛,它将所需的器件从元件库中调出来,画出原理图。
3、功能仿真
功能仿真也称为前仿真是在编译之前对用户所设计的电路进行逻辑功能验证,此时的仿真没有延迟信息,仅对初步的功能进行检测。
4、综合优化
所谓综合就是将较高级抽象层次的描述转化成较低层次的描述。综合优化根据目标与要求优化所生成的逻辑连接,使层次设计平面化,供FPGA布局布线软件进行实现。
5、综合后仿真
综合后仿真检查综合结果是否和原设计一致。在仿真时,把综合生成的标准延时文件反标注到综合仿真模型中去,可估计门延时带来的影响。但这一步骤不能估计线延时,因此和布线后的实际情况还有一定的差距,并不十分准确。
6、实现与布局布线
布局布线可理解为利用实现工具把逻辑映射到目标器件结构的资源中,决定逻辑的最佳布局,选择逻辑与输入输出功能链接的布线通道进行连线,并产生相应文件(如配置文件与相关报告),实现是将综合生成的逻辑网表配置到具体的FPGA芯片上,布局布线是其中最重要的过程。
7、时序仿真
时序仿真,也称为后仿真,是指将布局布线的延时信息反标注到设计网表中来检测有无时序违规(即不满足时序约束条件或器件固有的时序规则,如建立时间、保持时间等)现象。时序仿真包含的延迟信息最全,也最精确,能较好地反映芯片的实际工作情况。
8、板级仿真与验证
板级仿真主要应用于高速电路设计中,对高速系统的信号完整性、电磁干扰等特征进行分析,一般都以第三方工具进行仿真和验证。
9、芯片编程与调试
设计的最后一步就是芯片编程与调试。芯片编程是指产生使用的数据文件(位数据流文件,Bitstream Generation),然后将编程数据下载到FPGA芯片中。其中,芯片编程需要满足一定的条件,如编程电压、编程时序和编程算法等方面。
对CPLD/FPGA芯片进行编程配置的方式有多种1、按使用计算机的通讯接口划分,有:
(1)串口下载(BitBlaster或MasterBlaster)、
(2)并口下载(ByteBlaster)、
(3)USB接口下载(MasterBlaster或APU)等方式。
2、若按使用的CPLD/FPGA器件划分,有:
1)CPLD编程(适用于片内编程元件为EPROM、E2PROM 和闪存的器件);
2)FPGA下载(适用于片内编程元件为SDRAM的器件)
3、按CPLD/FPGA器件在编程下载过程中的状态划分,有:
1)主动配置方式。
在这种配置方式下,由CPLD器件引导配置 *** 作的过程并控制着外部存贮器和初始化过程;
2)被动配置方式。
在这种配置方式下,由外部CPU或控制器(如单片机)控制配置的过程。
CPLD/FPGA器件按照正常使用和下载的不同过程其工作状态分为三种:
1、用户状态(User mode)
即电路中CPLD器件正常工作时的状态;
2、配置状态(Configuration mode )
指将编程数据装入CPLD/FPGA器件的过程,也可称之为下载状态;
3、初始化状态(Initialization)
此时CPLD/FPGA器件内部的各类寄存器复位,
让I/O引脚为使器件正常工作作好准备。
ALTERA公司的开发系统MAX+PLUSⅡ可以生成多种格式的编程数据文件。对于不同系列器件, 所能生成的编程/配置文件类型有所不同, 但大致可有下面几种类型:
①SRAM Object格式(.sof):
SOF格式文件用于FLEX器件的Bit Blaster或Byteblaster被动配置方式。
MAX+PLUS II编译综合工具会在编译综合过程中自动为FLEX系列器件生成SOF数据格式文件, 其它数据格式均可由该种格式转化而成。
②Programming Object格式(.pof):
POF格式文件用于对MAX系列器件编程配置, 也可以用于对采用EPROM配置方式的FLEX器件进行配置。POF文件也是由MAX+PLUS II软件在编译综合过程中自动产生。
③十六进制格式(.hex):
HEX格式文件是使用第三方编程硬件对并行EPROM编程的数据文件,从而可以将并行EPROM作为数据源, 用微处理器对FLEX器件进行被动串行同步(PS)配置或被动串行异步(PSA)配置。
④ASCII码文本格式(.ttf):
TTF格式文件适用于被动串行同步(PS)配置和被动串行异步(PSA)配置类型, 它在配置数据之间以逗号分隔。
编程一般会用:Verilog和VHDL两种来完成,也用用电路直接搭的,那种比较高端,需要很丰富的设计经验,和对数字电路的了解
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)