【FPGA】对FPGA的理解

该文章主要描述对FPGA的理解及其在嵌入式开发中FPGA的配合问题。

1、FPGA的设计流程

FPGA(Field Programmable Gate Array)是一种可编程的逻辑电路,可以通过硬件描述语言Verilog或者VHDL实现逻辑电路的设计。其设计流程如下:

系统设计->Verilog/VHDL实现->功能仿真->逻辑综合->布局布线->后仿真->在线系统测试。

其中,功能仿真又可以称为前仿真,主要验证所创建的逻辑功能是否正确。

后仿真为布局布线后的仿真,对应于门电路级别的仿真,与前仿真不同,这里可以看到具体电路的布局布线对时序上的影响。

 

参考:《FPGADesign Flow》Altera.com

功能仿真与时序仿真,及Modelsim的使用

 

2、FPGA与嵌入式开发

之前在实习时是用CPU控制FPGA内部逻辑,达到对接口时序进行控制,对应的原理框图如下:


上图中,CPU与FLASH,DDR及CPLD采用localbus总线方式进行连接。

在这里,CPLD在业务上除了对MCU与FPGA之间的数据进行透传之外,还起到PS加载的作用。很多人可能认为这样的设计可能会比较多余,因为CPU可以直接对FPGA进行PS加载,只要模拟加载的接口时序即可,同时,这样也可以达到对FPGA的直接操作。但是,这样的设计是为了能够提高PS加载的速度。

对于CPU来说,接口时序的模拟有一定的瓶颈,速度要具体参考对应GPIO的转换速度,一般不是专门设计用来加载的GPIO口,其高低电平转换速度有限,通常为kHz,这就导致了FPGA的加载速度取决于GPIO口的速度。但对于CPLD加载FPGA这样的方式来说,CPU只需要将数据通过localbus发送给CPLD,然后加载的过程由CPLD进行,对于localbus这样的总线,参考时钟通常在66MHz左右,所以CPU发送速度有所保障,大大提升PS加载的速度。更多的PS加载流程,可参考Aletra的手册。

此外,在业务中,CPU与FPGA的控制主要通过CPU->CPLD->FPGA进行,CPLD将数据从CPU端透传至FPGA端,从而CPU能够直接操作FPGA内部定义好的寄存器,实现对应操作。

参考:《Using CPLD Improve FPGA Loading Speed》李春雨,张丽霞


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值