FPGA/CPLD工作原理

版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/Alexanderrr/article/details/51615683

FPGA和CPLD是可編程邏輯器件的典型代表。

我們可以通過軟件對其硬件結構進行重構(wait…軟件能改變硬件結構?變形金剛啊?),不用像傳統方式那樣,每次做電路、升級電路都要重新買器件、焊電路。

FPGA:Field-Programmable Gate Array
CPLD:Complex Programmable Logic Device

編程語言可以是VerilogHDL、VHDL
軟件常用Quartus等.

下面來介紹一下“變形金剛”的原理。
如下圖是CPLD內部的一種基本結構”與或門陣列”:
A0、A1是輸入信號,F0、F1是輸出信號。
這裏寫圖片描述

通過設置“與陣列”和“或陣列”中交叉點的連接、斷開,可以得到F(A0,A1)的任意一種組合邏輯表達式。

故,該電路在硬件不更換的條件下,通過改變交叉點狀態,對應邏輯功能是可以再次改變的,所以稱爲可編程邏輯器件(PLD)。

這些交叉點的通斷控制有很多實現方式,早期使用紫外線或激光對交叉點進行照射使其熔斷或熔接。現在一般用存儲器的值去控制三極管通斷實現交叉點通斷。所以,對可編程邏輯器件下載配置,實際上可以理解爲給存儲器賦值。

FPGA內部可編程單元結構採用查找表結構(LUT,look up table)
如下圖,左側一列是16X1bit的位存儲單元 RAM。輸入信號是ABCD,輸出信號F在圖的最右側“查找表輸出”。通過改變ABCD輸入,可以選擇對應地址的值輸出。通過修改存儲單元RAM的內容,這個電路結構可實現任意的F(A,B,C,D)函數。有沒有發現,這個結構和數字電路中真值表的功能是一模一樣的。
LUT

總結:
VerilogHDL是我們描述電路功能的語言,軟件Quartus根據Verilog語言,讓計算機自動設計出電路結構,並將這種結構配置到FPGA芯片中,實現其內部結構的重構。

在現代電子系統設計中,可編程邏輯器件的使用,極大地降低了用戶設計大規模數字電路的難度,實現了電子設計自動化(EDA,Electronic Design Automation)。

FPGA、CPLD內部結構非常豐富,絕不侷限於以上內容。本文​僅幫助大家快速揭開可編程邏輯器件的神祕之處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章