答:cpld(comlex programmable logic device) 複雜可程式設計邏輯器件:cpld由很多巨集構成,每個巨集內有乙個可程式設計的與陣列和固定的或陣列。
fpga(field programmable gate array)現場可程式設計門陣列:基於靜態查詢表邏輯(lut)的電路結構的。
區別:1.物理構成上:cpld屬於rom,fpga屬於ram。 前者程式**後就一直儲存,不需要重新載入。後者程式掉電丟失,每次開機上電時需重新引導程式。
2.片內資源數不同:cpld一般只有1000-50000門;而fpga的門數達到5000-1000萬。
3.相對來說:fpga適合實現時序邏輯電路,cpld適合實現組合邏輯電路。但並不是絕對的。
各種可程式設計器件的內部結構
prom:固定的與陣列和可程式設計的或陣列
pla:可程式設計的與陣列和或陣列
pal/gal:固定的或陣列以及可程式設計的與陣列
cpld:由很多巨集構成,每個巨集內有乙個可程式設計的與陣列和固定的或陣列
fpga:基於sram的查詢表邏輯
簡單和複雜可程式設計器件的分類
答:整合度大於gal22v10的稱為複雜pld(cpld、fpga),反之歸為簡單pld(prom、pla、pal、gal)
四、vhdl語言的資料物件有:常數、變數、訊號。
vhdl語言的資料型別有: std_logic、bit、integer、std_logic_vector …
訊號與變數的區別
答: 1. 變數只是暫存變化資料以供計算,它是「純軟體」含義。
如迴圈體中的迴圈變數。而訊號除了暫存資料外還有「硬體」含義,代表連線,具有電平高低的含義。如實體內部乙個觸發器的輸出。
(變數:儲存變化資料訊號:除了儲存變化資料,還有硬體含義。
代表連線。)
2.賦值符號不同。訊號賦值符是<=,變數賦值符是:=
3.定義和作用範圍不同
(1)變數在程序、過程和函式裡定義。只能在定義它的程序、過程或函式內部使用。
(2)訊號在結構體的說明部分定義,也可以在庫檔案裡的程式包中定義,它的定義在程序、過程和函式外。可以在整個定義或呼叫它的結構體裡使用,不論是程序、過程、函式內還是外。
4.程序的敏感訊號表裡只能用訊號,不能用變數。
5.變數的賦值執行過程不需要時間。而訊號賦值的過程需要時間。訊號賦值語句完全的語法如下:訊號名 <= 表示式 after 時間量
6.並行性和序列性:
(1)變數的定義和作用範圍是程序、過程和函式內部,屬於序列區域,所以變數的賦值肯定是順序執行的。
(2)訊號的定義和作用範圍在整個結構體。因此既可以在序列區域賦值,又可以在並行區域賦值。
訊號在並行與序列區域內的區別
答:1.訊號在並行區域的賦值:
(1)訊號在並行區域賦值:多條賦值語句之間是並行賦值的,不分先後次序。因此在並行區域不允許出現對同一訊號的多次賦值。
(2)訊號在並行區域可以用條件賦值語句 when else 對同一訊號多次賦值,這是因為在條件賦值語句中同一時刻只能有一種判斷為真。
2.訊號在序列區域的賦值:
(1)多個訊號賦值語句之間先是按照程式順序準備數值。數值準備好但不是立即賦給訊號,而是在最後時刻同時並行把所有的訊號賦值。
(2)在序列區域,例如乙個程序內,可以對同一訊號多次賦值,但綜合器只認最後一條,把前面的刪除。
(3)在不同的程序中可以對同一訊號多次賦值,對應電路中「匯流排」的概念。
完備語句與不完備語句的區別
答:完備語句構成組合邏輯電路
不完備語句構成時序邏輯電路
vhdl語言的結構與功能
答:(1)以關鍵詞entity引導,end entity 實體名結尾的聚集部分,稱為實體。vhdl的實體描述了電路器件的外部情況及各訊號埠的基本性質,如訊號流動的方向,流動在其上的訊號結構方式和資料型別等
(2)以關鍵詞 architecture 引導,end architecture one 結尾的語句部分,稱為結構體。結構體負責描述電路器件的內部邏輯功能或電路結構。
狀態機的型別和區別
答:從狀態機的訊號輸出方式上分為mealy型和moore型兩種。前者屬於同步輸出狀態機,後者屬於非同步輸出狀態機。
mealy型狀態機的輸出是當前狀態和所有輸入訊號的函式,它的輸出是在輸入變化後立即發生的,不依賴於時鐘的同步。moore型狀態機的輸出則僅為當前狀態的函式,這類狀態機在輸入發生變化時還必須等待時鐘的到來,時鐘使狀態發生變化時才導致輸出的變化,所以比mealy機多等待乙個時鐘週期。
狀態機的編碼有哪幾種,並分別簡述特點。
答:狀態位直接輸出型編碼:這類編碼方式最典型的應用例項就是計數器,這種編碼的狀態機的輸出即各狀態的編碼。
優點:輸出速度快,沒有毛刺現象;
缺點:程式可讀性差,難以有效控制非法狀態的出現。
順序編碼 :優點:最為簡單,使用的觸發器數量最少,剩餘的非法狀態最少,容錯技術最簡單;
缺點:不利於在fpga器件中實現,此外對於輸出的控制訊號cs、a0、rc和lock,還需在狀態機中再設定乙個組合程序作為控制解碼器。
一位熱碼編碼:當處於該狀態時,對應的觸發器為1,其餘的觸發器置0;
優點;簡化了狀態解碼邏輯,提高了狀態轉換速度。
子程式有哪兩種形式?它們是序列還是並行?請簡述它們的區別。
答:1.函式function與過程procedure。
2.函式是序列,過程是序列。
3區別:(1)參數列的區別。函式的參數列是用來定義輸出值的,所以不必以顯式表示引數的方向;過程的參數列可以對常數、變數和訊號三類資料物件目標作出說明,並用關鍵詞in、out和inout定義這些引數的工作模式,即資訊的流向。
如果沒有指定模式,則預設為in。
(2)函式參量可以是訊號或常數,預設函式引數為常數;過程的引數型別可以是常量或者是變數。
(3)過程可有多個返回值,函式只能有乙個。
(4)過程中可以有wait,而函式中不可以。
(5)呼叫方式:函式呼叫時將所定義的函式作為語句中的乙個因子如如一運算元或賦值句。過程呼叫將定義的過程名作為一條語句來執行。
子程式定義和使用範圍是什麼?
答:函式的定義由函式首和函式體兩部分組成,在程序或結構體中不必定義函式首,而在程式包中必須定義函式首。
過程也由過程首和過程體構成,在程序或結構體中不必定義過程首,而在過程包中必須定義過程首。
使用範圍:1、程式包中;2、結構體說明部分;3、程序內部定義。
子程式的資料型別
改錯幾大原則:
(1)語句結構描述中方括號「[ ]」內的內容為可選內容。
(2)vhdl語言不加以區大小寫。
(3)程式中的注釋用雙橫線「--」。
(4)定義實體的檔案其檔名必須和實體的名字一致。
(5)分號標誌語句的結束。
(6)訊號與變數的區別,變數範圍有限
(7)過程與函式的引數,資料物件
十五、程式設計
填空實驗部分: <1> 元件呼叫與例化的例子
<2> 狀態機
50216 6-7
ARMDSP和FPGA的特點和區別
fpga可以通過並行處理和流水線,達到比cpu和dsp更高的資料處理能力。而且現在fpga也內嵌了dsp模組和cpu,可以設計成片上系統。對於對cpu要求不高的單板,只要使用fpga內的cpu就可以了,不需要另外再貼塊cpu晶元了。因為三種器件各有其優勢,所以是誰也沒有辦法替代誰。主要的競爭在fpg...
Begoingto與will的區別
語法 一般將來時態 a.be going to 與will的區別 1.相同點 都可以表示將要發生的事,將要去做的事。2.不同點 1 be going to 表近期,眼下就要發生的事情 will 表將來時間則較遠一些。2 be going to 表根據主觀判斷將來肯定要發生的事 will 表客觀上將來...
begoingto與will的區別
be going to 中的be是助動詞,它有am,is,are三種形式,沒有什麼實際意義 to是動詞不定式的標誌詞,標誌詞後動詞用原形。它們三個總是形影不離,在句中共同表達 計畫 打算 準備去做 的意思。如 i am going to sell this old car,and buy a new...