d觸發器是上公升沿前面的低電平將訊號載入到d端,上公升沿時q端輸出d端的訊號
連線到inst例項上的訊號應該是wire,而不能用reg的
task可以對testbench中所有的reg變數賦值
mealy狀態機:輸出和輸入及當前狀態有關;moore狀態機和輸入無關,只和當前狀態有關
獨熱碼用的暫存器數量多,但用的組合邏輯數量少
fpga避免鎖存器出現,因為鎖存器的延遲時不固定的,後仿會有比較大的問題
鎖存器latch只存在於組合邏輯電路中,主要影響就是延遲不定和毛刺的現象,影響時序分析
可能產生鎖存器的原因:1是if語句沒有else,2是case語句沒有default
組合邏輯(assign
和always@*
)使用阻塞賦值,時序邏輯使用非阻塞賦值
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值。它的主要思路是選取恰當的進製,可以...