引用 LV 的 FPGA CPLD簡介

2021-05-23 01:16:55 字數 3432 閱讀 4628

fpga/cpld簡介

一、可程式設計邏輯器件主要有兩個型別:

(一)、現場可程式設計門陣列(fpga)(field programmable gate array)

(二)、複雜可程式設計邏輯器件(cpld)(complex programmable logic device)

二、fpga與cpld的比較

儘管fpga和cpld都是可程式設計asic器件,有很多共同特點,但由於cpld和fpga結構上的差異,具有各自的特點:

(一)、cpld更適合完成各種演算法和組合邏輯,fpga更適合於完成時序邏輯。

(二)、由於內部佈線結構,cpld的時序延遲是均勻的和可**的,而fpga的延遲的不可**性。(我們在用的時候不用考慮內部結構的佈線問題)

(三)、在程式設計上fpga比cpld具有更大的靈活性。

(四)、fpga的整合度比cpld高,具有更複雜的佈線結構和邏輯實現。

(五)、cpld比fpga使用起來更方便。cpld的程式設計採用e2prom或fast flash技術,無需外部儲存器晶元,使用簡單。而fpga的程式設計資訊需存放在外部儲存器上,就是需要一些配置晶元。

(六)、在程式設計方式上,cpld主要是基於e2prom或flash儲存器程式設計,程式設計次數可達1萬次,優點是系統斷電時程式設計資訊也不丟失。fpga大部分是基於sram程式設計,程式設計資訊在系統斷電時丟失,每次上電時,需從器件外部將程式設計資料重新寫入sram中。其優點是可以程式設計任意次,可在工作中快速程式設計,從而實現板級和系統級的動態配置。

(七)、cpld保密性好,fpga保密性差。

(八)、一般情況下,cpld的功耗要比fpga大

三、fpga的用途

fpga被應用於範圍廣泛的應用中,從資料處理和儲存,以及到儀器儀表、電信和數字訊號處理等。fpga能完成任何數字器件的功能,上至高效能cpu,下至簡單的74系列電路,都可以用fpga來實現。fpga/cpld的應用領域:汽車、軍事和航空航天、廣播、測量和測試、消費類、有線或無線通訊、工業、醫療等等。

四、cpld/fpga與mcu的比較

1、mcu(微處理器或微控制器)面臨的問題

由mcu為主構成的電子應用系統通常出現的問題可以分為兩類:1類是技術類問題,如軟體設計、介面器件的選擇或康干擾措施應用等問題,這類問題通常屬於可以解決的問題;另一類則直接與mcu的缺點有關。主要包括一下幾個方面:

(1)、低速   由於mcu的工作方式是通過內部的cpu逐條執行軟體指令來完成各種運算和邏輯功能的,無論多麼高的工作時鐘頻率和多麼好的指令時許方式,在排隊式序列指令執行方式(dsp處理器也是這種方式)面前,其工作速度和效率也將大打折扣,因此,mcu在實時**,高速工控或高速資料採集等領域便顯得力不從心了。

(2)、復位工作方式  mcu的另乙個致命的弱點是:任何mcu在工作初始都必須經歷乙個復位過程,否則進行正常工作。mcu的復位必須滿足一點的電平(電壓)條件和時間條件。在工作電平有某種干擾性突變的時候,mcu的復位將成為系統不可靠工作的重要因素。而且產生這種復位問題是隨機和動態的,一般都無法檢測的。這個復位問題是mcu的乙個先天不足。

(3)、pc的程式跑飛 在強干擾或某種偶然因素下,任何mcu的pc都極可能越出正常的程式流程而跑飛。無論多麼優秀的mcu,無論具有多麼良好的抗干擾措施,包括設定任何方式的內、外硬體看門狗,在強干擾條件下,mcu都無法保證其仍能正常工作而不進入不可挽回的「宕機」狀態。因此,當mcu的復位問題和跑飛問題結合在一起的時候,就會讓技術人員很難受,因此他們寧可使用純模擬或純數位電路。

(4)、mcu使用誤區  mcu邏輯行為上的普適性,常會引導人們進入這樣乙個誤區:mcu是無所不能的,任何乙個電子系統設計,mcu都是無可質疑的主角。

2、cpld/fpga的主要優點可以歸納如下:

(1)、高速  cpld/fpga的時鐘延遲可以達到ns級(1ns就是100mhz,同時最高的器件可以支援ghz的速度),結合其並行工作方式,在超高速應用領域和實時監控方面有著非常廣闊的前景。

做個比較:工作於12mhz晶振頻率的mcs51系列微控制器對ad控制的取樣速率為20khz左右,若是用fpga來實現的話,若fpga取樣的工作頻率是100mhz,那麼對ad的取樣速率可以達到50mhz。

(4)、易學易用  用mcu設計數字系統,對於行家來說是十分簡單的事情,然而對於初學者,確實件不易的事。因為他不僅需要熟悉軟體,而且還要有豐富的硬體開發經驗;不僅要熟悉各種微控制器的開發系統的使用方法,還要知道所以微控制器的內部結構(微控制器的內部有很多的暫存器,要是使用必須先熟悉這些東西是什麼怎麼用,比較麻煩)。相比之下,cpld/fpga應用的學習卻無需太多的預備,他就像一張白紙,你無需了解內部結構,只要稍有一點數位電路的知識,就可在短期內掌握基本的設計方法和開發技巧。

(5)、開發周期短  許多**商都推出了相應的軟體,以及一些技術支援。如altera公司的 maxplus 和quartusii,這些軟體**功能完善,**能力強,開發簡便,硬體因素設計少,因此可以在短時間內實現複雜系統的設計。

(6)、系統可**性好 有豐富的軟體

(8)、多次擦寫,可重複利用

(9)、保密性好

(10)、有豐富的埠

五、學習fpga/cpld所要掌握的知識

1、硬體知識  fpga/cpld就像一張白紙,我們不需要對內部有太深的了解,在程式設計的時候也不要像mcu那樣對內部什麼暫存器進行初始化什麼的,我們只要寫程式就好。而且我們對於他的那麼多的管腳,其實一部分是有專門用途的,那麼我們可以不用,別的io口都是可以用的,而且都是一樣的,比如epf10k10tc144-4的可用io口為102個(一般的微控制器只有32個埠,而且這些埠不是都可以用的),都是一樣的埠。因此,硬體不需要太多的了解。

2、理論知識  對於數字系統,那麼我們就要掌握一些基本的數字知識,可以找點數位電路的書看看,看看最簡單的邏輯知識。

3、軟體使用  目前最大的生產fpga/cpld的廠家是altera,他提供的軟體以及支援是比較豐富的。目前該公司提供的**軟體主要有quartusii、nios ii 等等。目前用的比較多的是quartusii6.0,軟體的學習是比較簡單的。

4、語言的學習  fpga/cpld主要vhdl(very-high-speed integrated circuit hardware description)和verilog hdl語言兩種。vhdl的主要應用領域:

(1) 智慧型模組(ip)的研發   ip:  用vhdl語言編寫,經邏輯優化和功能驗證的可生成vlsi中各種功能單元的軟體群,例如,無線通訊產品、網上裝置、**處理器(通用cpu)、dsp、pci、usb、嵌入式cpu

(2)單晶元全功能整合系統設計:sopc系統、嵌入式計算、asic驗證

(3)功能可重置系統的設計:遠端系統公升級、可重配置設計

三、學習fpga/cpld的方法

要想在fpga上實現自己想要的東西,首先要明白你要實現的東西的原理,然後根據原理去用vhdl語言來實現。

學習fpga,首先要學習vhdl語言,那就要掌握vhdl的基本語法,這就要看一些基本的書。掌握了語法後,學習fpga,就要把軟體和硬體結合起來,這樣效果比較好,否則就是看書的話效果不明顯。

關於AIX的LV的狀態問題

在資料庫管理過程中常常遇見lv狀態異常,而造成lv不能再次被使用的情況,那麼aix中lv的兩種狀態分別代表什麼呢 如果是訪問fs需要open,即建立檔案系統並mount 檔案系統lv state 才是open syncd 的 如果是訪問raw,即lv 作為裸裝置 raw device 在用到的時候是...

調整mount到 下的lv的方法

測試成功 使用lfs livecd redhat的rescue模式也是會提示lv在mount狀態 用livecd引導 使用 vgscan 搜尋到硬碟的vg 然後用 vgchange a y 啟用vg 我是要縮小分割槽所以執行下面的命令 e2fsck f dev volgroup00 logvol00...

keepalived雙主模型的高可用LVS

keepalived keepalived的作用是檢測web伺服器的狀態,如果有一台web伺服器宕機,或工作出現故障,keepalived將檢測到,並將有故障的web 伺服器從系統中剔除,當web伺服器工作正常後keepalived自動將web伺服器加入到伺服器群中,這些工作全部自動完成,不需要人工...