1、組合邏輯的競爭冒險
組合邏輯:任何時刻電路的穩(wěn)定輸出,僅僅取決于該時刻各個輸入變量的取值。
組合邏輯的競爭冒險:當輸入信號同事變化時,組合邏輯必然產(chǎn)生毛刺。
解決方法:用時序邏輯,每次寄存器的輸出結果取決于上一個時鐘的寄存器的值,不會產(chǎn)生毛刺。

2、寄存器reg可以用在時序邏輯也可以用在組合邏輯
時序邏輯就是平時寫的clk觸發(fā)
組合邏輯例如always@(b) out1 =~ b;
觸發(fā)器具有記憶性原因:普通的門電路輸出信號只取決于當前輸入信號,無記憶性,但是觸發(fā)器
的輸出還和之前的狀態(tài)有關,比如JK觸發(fā)器:Qn+1 = JQn_ + K_Qn
3、時序,組合邏輯,阻塞與非阻塞區(qū)別
//time 非阻塞 always @(posedge clk) begin time_nblock <= sig_in; time_nblock1 <= time_nblock; end //time 阻塞 always @(posedge clk) begin time_block = sig_in; time_block1 = time_block; end //combine 非阻塞 always @(*) begin com_nblock <= sig_in; com_nblock1 <= com_nblock; end //combine 阻塞 always @(*) begin com_block = sig_in; com_block1 = com_block; end
綜合出來的電路

時序電路,會生成D觸發(fā)器,根據(jù)電路可以看出阻塞賦值和非阻塞賦值,一個always塊結束之后,阻塞賦值結果都是一樣的,但是非阻塞
賦值的話,是同事變化的,time_nblock得到sig的同時,time_nblock1也得到time_nblock之前得值。
阻塞賦值從電路上看,非阻塞和阻塞都是一樣得,modelsim仿真也是這么個情況。
一般來說,時序邏輯用非阻塞賦值,組合邏輯用阻塞賦值。
4、與門
assignq = (al == 1) ? d : 0;
5、亞穩(wěn)態(tài)
亞穩(wěn)態(tài)定義:在進行fpga設計時,往往只關心“0”和"1"兩種狀態(tài)。然而在工程實踐中,除了”0“、”1“外還有其他狀態(tài),亞穩(wěn)態(tài)就是其中之一。
亞穩(wěn)態(tài)是指觸發(fā)器或鎖存器無法在某個規(guī)定時間段內(nèi)達到一個可確認的狀態(tài)[1]。當一個觸發(fā)器進入亞穩(wěn)態(tài)時,既無法預測該單元的輸出電平,
也無法預測何時輸出才能穩(wěn)定在某個正確的電平上。在亞穩(wěn)態(tài)期間,觸發(fā)器輸出一些中間級電平,甚至可能處于振蕩狀態(tài),并且這種無用的輸
出電平可以沿信號通道上的各個觸發(fā)器級聯(lián)式傳播下去。亞穩(wěn)態(tài)是異步數(shù)字電路設計中的固有現(xiàn)象,但是由于其偶發(fā)性和溫度敏感性的特點,
在產(chǎn)品前期測試過程中很難發(fā)現(xiàn)。
亞穩(wěn)態(tài)產(chǎn)生的原因:1、時序不滿足,例如不滿足建立時間和保持時間。
2、不同時鐘域接口
例如當數(shù)據(jù)剛傳過來的時候,clkb恰好來了一個上升沿
亞穩(wěn)態(tài)的解決方法:1、單比特信號打兩拍寄存器,我看網(wǎng)上亞穩(wěn)態(tài)有一個震蕩周期,如果震蕩周期大于一個時鐘的話那么一級緩存之后仍然會有亞穩(wěn)態(tài)
現(xiàn)象,所以兩級緩存就比較靠譜了。
2、多比特信號fifo
審核編輯:劉清
-
寄存器
+關注
關注
31文章
5504瀏覽量
128354 -
Verilog
+關注
關注
30文章
1369瀏覽量
113834 -
觸發(fā)器
+關注
關注
14文章
2048瀏覽量
62885 -
FIFO存儲
+關注
關注
0文章
103瀏覽量
6271
原文標題:verilog知識
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
Verilog HDL練習題和Verilog基礎知識適合verilog新人
介紹關于編程的基礎知識
Verilog HDL基礎知識
Verilog教程之Verilog HDL數(shù)字集成電路設計方法和基礎知識課件

verilog基礎知識介紹
評論