FPGA的發展史及FPGA 的基礎架構


通過了解早期FPGA的發展,理解FPGA究竟是干什么的,FPGA到底在電子設計領域起到了什么樣的作用,下面是一張早期的設計過程

 

 

 

早期的設計流程過程中,只有當硬件完成了才能夠得到功能的驗證,隨着集成電路開發的規模來越大,漸漸的需要一種快速有效的開發平台來完成預期的功能設計的驗證,減少研發周期及研發成本,由此引入了EDA技術,首先是使用一種語言系統來描述一個硬件模型(即VHDL),其語言着重在描述性上,即重點在建立電路模型的過程上

此處就應該知道電路模型應該具備全部的電路特征:

(1)必要的輸入和輸出

(2)必要的內部信號

(3)特定的邏輯和時序行為等

這里就是FPGA開發語言與C語言之間本質性的差距(C語言是過程描述語言)。

在完成需要與想法后,即完成EDA設計后的一些應用方面如下圖

 

 

 

HDL描述的抽象硬件模型,verilog里面稱為Module

FPGAverilog設計中,用到是查找表的方式來完成的對任意的組合邏輯的實現。在FPGA內部包含許多單元LUT(查找表),IOE(輸入輸出單元),Memory(內存)和DSP(乘法器等硬件電路主城)等構成。

EDA工具如何將我們的語言轉化為FPGA可應用的硬件電路。

 

 

編譯:將HDL 模型轉變為基本的門級網表。

映射:為這些基本的門模型分配具體的cell

映射后的網表即可以直接燒錄到FPGA的器件里面。

 

硬件模型代碼編寫好后,需要對抽象的電路模型進行測試,稱之為驗證,為了進行驗證,需要單獨編寫一段HDL代碼,建立一個用於測試的模型,此模型稱為Testbench

 

由於Testbench是一個真實的仿真平台,所以其本身也是不能運行的,EDA軟件會提供一種運行Testbench的方法,這種抽象的方法稱之為仿真。

 

仿真又分為

綜合前驗證(加載的為RTL模型),主要驗證測試模型的邏輯性能。

綜合后驗證(加載的為網表),主要驗證的是設計模型的時序性能。

 

Quartus II主要用來做設計編譯及時序分析,仿真則需要用到ModelSim來進行驗證。

(感覺和單片機的KEILprotues的關系很像。

 

 

EDA的仿真工具ModelSim

 

技術報告大多數是modelsim做的驗證,有論文需求和技術文檔需求的小伙伴門可以看下,有開發板的貌似可以直接燒錄了,不過還是仿真后可以看的更清晰)

 

由於仿真過程中需要的調用很多跨平台的文件,Altera提出了一鍵跨平台的自動化方式,稱為NativeLink(使用時要注意層次化設計),這在后面的文章中會詳細的講解到

 

 

FPGA的邏輯單元

 

 

 

可編程寄存器是帶沿觸發的,由此可以構成時序邏輯。

提供路由器可以跟不同的邏輯單元進行來連接。

異步清零邏輯是為了在異步時序邏輯中提供異步清零的邏輯。

因為邏輯單元里面可能會有多個時鍾對邏輯單元進行處理,所以需要有個時鍾的管理。

查找表原理:任意組合邏輯的乘積項SOP對應n輸入多路器實現。

這篇文章旨在講述FPGA的作用及FPGA的一個基本的開發流程,如何將理論和實際結合起來,最后希望通過這篇文章讓大家了解為什么verilog HDL語言和C語言(面向過程)以及JAVA(面向對象)、python(面向邏輯)等語言有本質的不同,因為它是一個並不是一個面向開發過程的語言,它只是一個描述性語言,開發邏輯及開發過程需要通過數電及微機接口的知識來完成,它的作用僅僅是將期望的邏輯用人和FPGA都能夠理解的方式表達出來,然后傳遞到FPGA中讓他按照人的意願來實現相應功能的一門語言。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM