數字邏輯與EDA設計


-------------讀《數字邏輯與EDA設計》(廣工版)小結

第一章 數字邏輯基礎

1.1數制與碼制★★★

數制

n進制:0~n-1,小數點左邊,從右向左位權:n0,n1.....,小數點右邊,從左向右位權:n(-1),n(-2)....

16進制是用09,AF

數制之間的轉換

碼制

  1. 順序二進制編碼

  2. 格雷碼

    n位二進制數的順序二進制為B=B_n-1.....B_0,則G_i=B_i⊕B_i+1

  3. 獨熱碼

    只有一個二進制位為1,其余為0

  4. 二-十進制編碼/BCD碼(用每個四位的二進制表示十進制一位的0~9)

    8421,2424,5211屬於位權碼,余三碼是二進制碼+3,余三格雷碼是格雷碼+3

1.2基本及常用的邏輯運算★★

AB與,A+B或,A⊕B異或

1.2邏輯函數表示方法★★

  1. 邏輯表達式
  2. 真值表
  3. 卡諾圖
  4. 邏輯圖

1.3邏輯函數的化簡★★★

  1. 最小項及標准與或式(類似於離散數學中的極小項與主析取范式)

    常將最小項記作:m1,m2......

    求取方法:1.通過公式變換表達式 2.列出函數真值表,直接寫出標准與或式

  2. 邏輯函數的最簡與或式

  3. 利用公式和定理化簡邏輯函數

    1. 並項法 AB+A~B=A
    2. 吸收法 A+AB=A
    3. 消項法 AB+AC+BC=AB+AC
    4. 消因子法 A+~AB=A+B
    5. 配項法 A+A=A , A+~A=1
  4. 卡諾圖(變量少於6個)

    n個變量邏輯函數的卡諾圖就有2n個最小項,就有2n個方格

    格雷碼的順序在行列端及列左端處寫出變量取值

    幾何相鄰:1.相接 2.相對 3.相重

    幾何相鄰的最小項必為邏輯相鄰,可以合並消去變量

    2^n個最小項合並成一項時,可以消去n個變量

    合並所消去的是包圍圈內變量取值不同的,保留取值相同的

  5. 存在無關項的邏輯函數

    約束項用集合d表示

    其約束項和任意項統稱無關項,在卡諾圖用X表示,其化簡時視為1還是0,應以得到的包圍圈最大且包圍圈個數最少為原則

1.4常用74HC系列門電路芯片★

  1. 74HC00——2輸入與非門
  2. 74HC02——2輸入或非門
  3. 74HC04——非門
  4. 74HC08——2輸入與門
  5. 74HC32——2輸入或門
  6. 74HC86——2輸入異或門

sb知識:CMOS三態門能實現分時傳送數據邏輯功能

第二章 組合邏輯電路

​ 組合電路特點:

​ 1.邏輯功能上:任意時刻的電路輸出,僅取決於該時刻各個輸入變量的取值,與電路原來的工作狀態無關

​ 2.電路結構上:電路中輸出到輸入之間無反饋連接,電路由邏輯門電路組成,不包含任何可以存儲信息的具有記憶功能的邏輯元器件

2.1組合邏輯電路的分析方法★★★

  1. 根據給定的邏輯電路,寫出輸出函數的邏輯表達式
  2. 表達式變換及化簡
  3. 根據表達式列出真值表
  4. 對給定電路的功能進行邏輯描述

2.2常用的組合邏輯電路(多考察各種器的輸入輸出端設計)

1.編譯器★

​ 簡單來說就是將多個輸入信號(I_0I_m-1)變成較少的對應輸出編碼(Y_n-1Y_0)
為保證編碼位數最短,即輸出最少,m與n滿足:

2(n-1)<m<=2n

二進制編碼器:n個輸出對應2^n個輸入

2.譯碼器★

​ 與編譯器剛好相反

3.數據選擇器

​ 作為一種多路開關常用於將並行數據轉換位串行數據輸出

2^n路輸入1路輸出的多路選擇器有n個選擇控制變量,選擇控制端的二進制值m對應第m個輸出端口D_m

即是有n個選擇控制輸入端,2^n個數據輸入端

4.數值比較器

​ 基本功能:輸入兩個位數相同的數A,B,比較大小后輸出結果:G,E,S(對應> = <)

​ 有符號優先比較符號,多位數從高位比較起

n位數值比較器需要2n位數據輸入及3位輸出信號

5.加法器★

1位二進制加法器
  1. 半加器:只考慮兩個加數本身,不考慮由低位來的進位
  2. 全加器:除了考慮連個加數本身,還考慮由低位來的進位(會疊加上去)

2.3組合邏輯電路的設計方法★★★

  1. 分析設計要求,將文字描述抽象成輸出變量與輸入變量的邏輯關系
  2. 列真值表
  3. 根據真值表寫出邏輯表達式並進行化簡
  4. 根據所選擇的門電路的類型,變換最簡表達式
  5. 根據邏輯表達式畫出邏輯電路圖

2.4組合邏輯電路的時序分析★★★

  1. 波形圖

  2. 時序分析

    實際中信號經過任何一個門電路都會產生時間延遲,稱為傳輸延遲

    傳輸延遲除了會影響電路速度,還會引起電路的競爭問題

  3. 競爭冒險

    當輸入信號發生變化后,在輸出達到穩定前,輸出端可能出現異常的虛假信號(干擾脈沖)

    解決方案:1.選通法 2.濾波法 3.增加冗余項法

第三章 時序邏輯電路

​ 時序電路特點(注意與組合電路的不同):

1.邏輯功能上:任意時刻電路的穩定輸出,不僅取決於該時刻各個輸入變量的取值,還取決於電路原來的狀態

2.電路結構上:通常包含組合電路+存儲電路,存儲電路由具有記憶功能的鎖存器或觸發器構成,存儲電路的輸出狀態必須反饋到組合電路的輸入端,共同決定組合電路的輸出

​ 按觸發器的時鍾脈沖控制方式分類

​ 1.同步時序電路: 所有觸發器狀態的改變都在同一個時鍾脈沖控制下同時發生

​ 2.異步時序電路: 觸發器由兩個或及以上的時鍾脈沖Clk控制或無Clk控制

​ 按輸出與輸入的關系分類

​ 1.Mealy型時序電路: 輸出信號不僅取決於存儲電路的狀態,還與輸入直接相關

​ 2.Moore型時序電路: 輸出信號僅僅取決於存儲電路的狀態

3.1時序電路邏輯功能的表示方法★★

  1. 邏輯表達式

    1.輸出函數,用Y=...表示

    2.驅動函數,用Z=...表示

    3.狀態函數,用Q^(n+1)=...表示 //Q^n表示現態 Q^(n+1)表示次態

  2. 狀態表(有些需要先編碼,再列出真值表的形式)

    包括時鍾Clk,輸入,現態,次態,輸出

  3. 狀態圖

    圓圈代表一個存儲狀態,圈中文字代表狀態名字,箭頭表示狀態之間的轉換關系,箭頭上有:斜線左邊表示轉換條件/輸入信號,右邊是輸出信號

  4. 時序圖

3.2鎖存器與觸發器

鎖存器是電平敏感的存儲元件,即是存儲狀態隨着輸入信號的高低電平變化而變化

觸發器是時鍾脈沖邊沿觸發的存儲元件,即是存儲狀態僅在時鍾脈沖邊沿可能發生變化

觸發器(雙穩態)★★

1.D觸發器,特性函數:Q^(n+1)=D Clk上升有效

2.JK觸發器, 特性函數: Q(n+1)=J~Qn+~KQ^n Clk下降有效

3.RS觸發器,特性函數:1. Q(n+1)=S+~RQn 2. RS=0(約束條件)

4.T觸發器,特性函數:Q(n+1)=T⊕Qn

當置位或清零信號一產生就立刻進行操作的是異步方式,

當置位或清零信號產生后,還要等待時鍾脈沖信號的有效邊沿到來才進行操作的是同步方式

帶有異步置位Set和異步清零Clr的觸發器需遵守約束條件:Set*Clr=0

求n個觸發器構成的計數器有幾個無效狀態,用2^n-計數容量=無效狀態個數

3.3時序電路的分析方法★★★

  1. 寫函數表達式,包括輸出函數和各觸發器的驅動函數(Clk處無小圓圈為上升沿觸發,有為下降沿觸發)

  2. 將各觸發器的驅動函數代入各自的特性函數中,求觸發器的狀態函數

  3. 列出狀態表

  4. 畫狀態圖及時序圖(利用狀態表)

  5. 結合輸入信號的含義,進一步對電路功能進行分析,以及對電路是否能自啟動進行分析

    凡是沒被利用的狀態稱為無效狀態,構成的循環稱為無效循環,在時序電路中若存在無效循環,則電路有缺陷.時序電路能否自啟動取決於是否存在無效循環

3.4常用的時序邏輯電路

寄存器

1.基本寄存器

實現數據的並行輸入及並行輸出

2.移位寄存器

在移位脈沖的操作下,依次右移或左移數據,主要實現數據的串行輸入,輸出,也可以並行

分為右移,左移和雙向移位寄存器

計數器★

主要由觸發器組成 , n個觸發器構成的m進制的計數器,計數容量為m^nN進制計數器的計數容量為N

m進制計數器有m個狀態,最少滿足: 2(n-1)<m<=2n

使用集成的計數器設計N進制計數器★★

1.清零法:當計數器計數值達到N時,利用組合邏輯電路產生清零信號,使計數值變為0,可分同步置零與異步置零

2.置數法:通過設計計數的初始值,改變計數容量,如將容量為16的74HC161初始值設為4,以設計12進制計數器

3.級聯方式設計:當待設計的計數器計數容量大於集成計數器容量時,

通過將n片m位N進制計數器級聯的方式最多組成 (Nm)n進制的計數器

3.5時序電路的設計方法★★★

  1. 分析設計要求,建立原始狀態圖

  2. 進行狀態化簡,消去多余狀態

    (相同輸入下有相同輸出,且都轉換到同一個次態,可合並)

  3. 狀態分配,畫出編碼后的狀態圖

    n個觸發器共有2^n種狀態組合,固需要M個狀態時,至少滿足:

    ​ 2(n-1)<M<=2n

  4. 選擇觸發器類型,求出電路的狀態函數,輸出函數及驅動函數

    (可畫狀態表更方便求取)

  5. 如果電路存在無效狀態,則需判斷是否為能自啟動電路

    (可將無效狀態代入輸出函數和狀態函數計算是否能返回有效循環)

  6. 畫邏輯圖

3.6時序邏輯電路時序分析的基本概念(詳見課本)★

1.時鍾脈沖信號 2.建立時間,保持時間和最大傳播延遲時間 3.穩態和亞穩態 4.分辨時間

5.時鍾偏差

第四章 硬件描述語言 Verilog HDL★★★

1.標識符

​ 包括字母,數字,$和_的組合,區分大小寫,首字符必須字母或下划線

2.代碼格式

​ 自由,可同行或多行,注釋從C

3.模塊和端口(類似C中函數與函數參數的概念)

​ module 模塊名(端口1,。。。)

​ 。。。

​ endmodule

​ 端口列表所有端口須在模塊中聲明,根據流動方向分為:input,output和inout(雙向)

​ 端口默認聲明wire型,若希望輸出端口能保存數據,需顯示聲明為reg型(input和inout不能為reg)

端口調用

直接傳參,需要按順序傳,用名字傳參,如:(.端口名1(信號名1)。。。),則不必按順序

4.系統任務和系統函數$

$display(=printf) $monitor(動態監視,發生變化就輸出) \(stop和\)finish(使仿真掛起,進行調試)

\(time,\)stime,$realtime(分別以64,32位,實數返回當前仿真時間) $random

5.常用編譯器指令(以`開頭)

define和undef,include,timescale(定義延遲單位與延遲精度),

6.數據類型,操作符和表達式

3種常量:整型(Integer), 實數(Real), 字符串型(String)

整型格式:[指定位寬]'[有s/S表示有符號數] base(o/O-8, b/B-2, d/D-10, h/H-16) value

數據類型

基本值:1. 0(邏輯0/假) 2. 1(邏輯1/真) 3. x(X)//未知狀態 4.z(Z) //高阻狀態

線網類型:wire

常量類型:reg(寄存器類型,保持最后一次賦值結果),integer,time,real,realtime

數組類型:

參數:可用parameter定義常數

位選和部分位選:可從上述數據類型中拿取一部分數據,數據按高位在左

如:reg[3:0]pa;reg[2:0]Z

​ pa=4'b1010;

​ Z=pa[3:1];//3'b101

操作符

==邏輯相等 =全等 != !(邏輯不等與非全等)

<< ,>>(邏輯左移與右移,空位填0)

<<<,>>>(算術左移和右移,左移填0,右移有符號數填符號位)

拼接和復制

如:X={pa,pb[2:0],pc};

​ Z={3{pa}};//={pa,pa,pa}

7.行為級建模

1.過程結構(可加入敏感事件,延遲控制)

initial: 0時刻開始執行,只執行一次,可以在變量聲明時對reg賦值

always : 0時刻開始,重復執行

2.時序控制

delay://延遲控制

@(事件表達式) 執行語句;//事件控制

事件表達式:

<信號名>:發生變化就執行

posedge<信號名>:信號正跳

negedge<信號名>:信號負跳

wait(條件) //電平敏感事件控制,條件為真就執行

​ 執行語句;

3.語句塊

順序:begin...end

並行:fork...join

4.過程性賦值

阻塞性過程賦值:=

非阻塞性過程賦值:<=

5.分支語句

if, case(分支不用break), forever(用disable跳出), while, for

repeat(循環次數)

​ 執行語句

8.結構級建模

內置基本門級元件

多輸入門:and(與門),nand(與非門),or(或門),nor(或非門),xor(異或門),xnor(異或非門)

多輸出門:buf(緩沖器),not(非門)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM