FPGA FPGA學習筆記

2021-10-04 02:36:30 字數 1458 閱讀 8701

d觸發器是上公升沿前面的低電平將訊號載入到d端,上公升沿時q端輸出d端的訊號

連線到inst例項上的訊號應該是wire,而不能用reg的

task可以對testbench中所有的reg變數賦值

mealy狀態機:輸出和輸入及當前狀態有關;moore狀態機和輸入無關,只和當前狀態有關

獨熱碼用的暫存器數量多,但用的組合邏輯數量少

fpga避免鎖存器出現,因為鎖存器的延遲時不固定的,後仿會有比較大的問題

鎖存器latch只存在於組合邏輯電路中,主要影響就是延遲不定和毛刺的現象,影響時序分析

可能產生鎖存器的原因:1是if語句沒有else,2是case語句沒有default

組合邏輯(assignalways@*)使用阻塞賦值,時序邏輯使用非阻塞賦值

10.狀態機設計四段論

testbench 補充語法

task rand_bit();

integer i;

begin

for(i=0;i<255;i=i+1)

begin

@(posedge sclk)

// a_in <= $random %10 //產生 -10到+9

// a_in <= //產生0-9

a_in <= //產生0-1

endend

endtask

在10 的基礎上,在task中引入引數

task任務的同一行不帶有引數

引數通過埠,借助input,output對應

首先要給出待傳遞引數的值parameter

呼叫task,需要注意,呼叫時的埠順序和task中的埠順序一致

在task中根據輸入或輸出定義埠,需要注意的時,integer為32位

在下面的例子中,注意,外面定義的時len_write,task內部對應的使用的時wreite_len

parameter len_write=7;

//使用integer定義也是可以的 integer len_write=7;

write_data(len_write);

task write_data;

input [2:0]write_len;

integer i;

begin

for(i=0;i<=write_len;i=i+1)

begin

cs_n = 0;

data=i[15:0];

addr=i[7:0];

setup_dly();

wr_n = 0;

data_dly();

wr_n = 1;

hold_dly();

//cs_n = 1;

end

cs_n = 1;

endendtask

如何學習FPGA?FPGA學習必備的基礎知識

關鍵字 fpga 基礎知識 fpga已成為現今的技術熱點之一,無論學生還是工程師都希望跨進fpga的大門。網路上各種開發板 培訓班更是多如牛毛,彷彿在告訴你不懂fpga你就out啦。那麼我們要玩轉fpga必須具備哪些基礎知識呢?下面我們慢慢道來。一 要了解什麼是fpga 既然要玩轉fpga,那我們首...

3級排程 fpga FPGA的效能特徵及其尷尬處境

1.史稱 膠合邏輯專業戶 fpga field programable gate array 問世於1985年,直到十幾年前,顧名思義,其內部的硬體資源都是一些呈陣列排列的 功能可配置的基本邏輯單元,以及連線方式可配置的硬體連線。其在產品中的應用範圍僅限於訊號的匯集 分發 時序調整,以及脈衝序列的生...

學習筆記 雜湊學習筆記

hash基本原理 hash就是乙個像函式一樣的東西,你放進去乙個值,它給你輸出來乙個值。輸出的值就是hash值。一般hash值會比原來的值更好儲存 更小 或比較。那字串hash就非常好理解了。就是把字串轉換成乙個整數的函式。而且要盡量做到使字串對應唯一的hash值。它的主要思路是選取恰當的進製,可以...