中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

深圳做微信網(wǎng)站設(shè)計軟文推廣多少錢

深圳做微信網(wǎng)站設(shè)計,軟文推廣多少錢,精益生產(chǎn)管理咨詢公司,上海做企業(yè)網(wǎng)站接前文《【學(xué)習(xí)筆記】4、組合邏輯電路(上)》 4.4.5 算術(shù)運算電路 1. 半加器和全加器 半加器和全加器是算術(shù)運算電路中的基本單元。半加器和全加器是1位相加的組合邏輯電路。 (1)半加器 半加器:只考慮兩個加數(shù)本身,不考慮低位進…

接前文《【學(xué)習(xí)筆記】4、組合邏輯電路(上)》

4.4.5 算術(shù)運算電路

1. 半加器和全加器

  • 半加器和全加器是算術(shù)運算電路中的基本單元。
  • 半加器和全加器是1位相加的組合邏輯電路。
(1)半加器
  • 半加器:只考慮兩個加數(shù)本身,不考慮低位進位。

  • A、B是兩個加數(shù)

  • S表示和數(shù)

  • C表示進位

  • 列出真值表:

ABCS
0000
0101
1001
1110
  • 邏輯表達式
    • S = A  ̄ B + A B  ̄ = A ⊕ B S=\overline{A}B+A\overline{B}=A⊕B S=AB+AB=AB//異或
    • C = A B C=AB C=AB
  • 邏輯圖
    在這里插入圖片描述
(2)全加器
  • 全加器:加數(shù)A,加數(shù)B,以及低位進位 C i C_i Ci?。
  • S表示和數(shù)
  • C o C_o Co?表示進位
  • 列出真值表
A加數(shù)1B加數(shù)2 C i 低位進位 C_i低位進位 Ci?低位進位 C o 進位 C_o進位 Co?進位S和
00000
01001
10001
11010
00101
01110
10110
11111
  • 列出邏輯表達式
  • 不能直接給出最簡形式,借助卡諾圖。(先出現(xiàn)低位C,后出現(xiàn)高位A)
    在這里插入圖片描述
    在這里插入圖片描述

S = A  ̄ ? B  ̄ ? C i + A  ̄ ? B ? C i  ̄ + A ? B  ̄ ? C i  ̄ + A B C i = A ⊕ B ⊕ C i S=\overline{A}·\overline{B}·C_i+\overline{A}·B·\overline{C_i}+A·\overline{B}·\overline{C_i}+ABC_i=A⊕B⊕C_i S=A?B?Ci?+A?B?Ci??+A?B?Ci??+ABCi?=ABCi?//異或
C o = A  ̄ ? B ? C i + A ? B  ̄ ? C i + A ? B = ( A ⊕ B ) ? C i + A ? B C_o = \overline{A}·B·C_i+A·\overline{B}·C_i+A·B=(A⊕B)·C_i+A·B Co?=A?B?Ci?+A?B?Ci?+A?B=AB?Ci?+A?B

在這里插入圖片描述

2. 多位數(shù)加法器

(1)并行相加,串行進位,加法
  • 必須在低1位進行完成后,才可以進行高1位的加法。
  • 先低位相加,進位,再高位相加。
  • 受到進位信號的限制。
    在這里插入圖片描述
(2)集成4位超前進位加法器
  • 74HC283

  • 考慮到全加器組成的“并行相加,串行進位”的缺點,設(shè)計了新的多位加法邏輯電路。

  • 這里的超前,指的是 各個位加法不用等低1位的進位信號,提前進行加法。

  • 每位的進位,只由加數(shù)和被加數(shù)決定,與低位的進位無關(guān)。

  • 前文的全加器邏輯表達式:

    • S = A ⊕ B ⊕ C i S = A⊕B⊕C_i S=ABCi? //這里的i表示輸入input
    • C o = ( A ⊕ B ) ? C i + A ? B C_o =(A⊕B)·C_i+A·B Co?=AB?Ci?+A?B//這里的i表示輸入input
    • S i = A i ⊕ B i ⊕ C i ? 1 S_i = A_i⊕B_i⊕C_{i-1} Si?=Ai?Bi?Ci?1?//i表示當前全加器,i-1表示前一個全加器
    • C i = ( A i ⊕ B i ) ? C i ? 1 + A i ? B i C_{i} =(A_i⊕B_i)·C_{i-1}+A_i·B_i Ci?=Ai?Bi??Ci?1?+Ai??Bi?//i表示當前全加器,i-1表示前一個全加器
  • 為了只觀察進位 C i C_i Ci?,定義中間變量 G i = A i B i , P i = A i ⊕ B i G_i=A_iB_i,P_i=A_i⊕B_i Gi?=Ai?Bi?Pi?=Ai?Bi?,這兩個中間變量,在計算一開始,就已經(jīng)固定了。
    在這里插入圖片描述

    • S i = P i ⊕ C i ? 1 S_i = P_i⊕C_{i-1} Si?=Pi?Ci?1?
    • C i = P i ? C i ? 1 + G i C_{i} =P_i·C_{i-1}+G_i Ci?=Pi??Ci?1?+Gi?
  • 這里重點關(guān)注 C i = P i ? C i ? 1 + G i C_{i} =P_i·C_{i-1}+G_i Ci?=Pi??Ci?1?+Gi?,一個迭代函數(shù)。

    • C 0 = G 0 + P 0 C ? 1 C_0 = G_0+P_0C_{-1} C0?=G0?+P0?C?1?
    • C 1 = G 1 + P 1 C 0 = G 1 + P 1 ( G 0 + P 0 C ? 1 ) = G 1 + P 1 G 0 + P 1 P 0 C ? 1 C_1 = G_1+P_1C_{0}=G_1+P_1(G_0+P_0C_{-1})=G_1+P_1G_0+P_1P_0C_{-1} C1?=G1?+P1?C0?=G1?+P1?(G0?+P0?C?1?)=G1?+P1?G0?+P1?P0?C?1?
    • C 2 = G 2 + P 2 C 1 = G 2 + P 2 ( G 1 + P 1 G 0 + P 1 P 0 C ? 1 ) = G 2 + P 2 G 1 + P 2 P 1 G 0 + P 2 P 1 P 0 C ? 1 C_2 = G_2+P_2C_{1}=G_2+P_2(G_1+P_1G_0+P_1P_0C_{-1})=G_2+P_2G_1+P_2P_1G_0+P_2P_1P_0C_{-1} C2?=G2?+P2?C1?=G2?+P2?(G1?+P1?G0?+P1?P0?C?1?)=G2?+P2?G1?+P2?P1?G0?+P2?P1?P0?C?1?
    • C 3 = G 3 + P 3 C 2 = G 3 + P 3 ( G 2 + P 2 G 1 + P 2 P 1 G 0 + P 2 P 1 P 0 C ? 1 ) = G 3 + P 3 G 2 + P 3 P 2 G 1 + P 3 P 2 P 1 G 0 + P 3 P 2 P 1 P 0 C ? 1 C_3 = G_3+P_3C_2=G_3+P_3(G_2+P_2G_1+P_2P_1G_0+P_2P_1P_0C_{-1})=G_3+P_3G_2+P_3P_2G_1+P_3P_2P_1G_0+P_3P_2P_1P_0C_{-1} C3?=G3?+P3?C2?=G3?+P3?(G2?+P2?G1?+P2?P1?G0?+P2?P1?P0?C?1?)=G3?+P3?G2?+P3?P2?G1?+P3?P2?P1?G0?+P3?P2?P1?P0?C?1?
    • 根據(jù)推導(dǎo),我們可以知道,當前加法器的進位信號 C i C_i Ci?,只和 P i P_i Pi?、 G i G_i Gi?、初始進位信號 C ? 1 C_{-1} C?1?有關(guān)。
  • 邏輯圖。
    在這里插入圖片描述

  • 下圖是猜測的74HC283邏輯圖。
    在這里插入圖片描述

  • 串聯(lián)進位,級聯(lián)。
    在這里插入圖片描述

  • 超前進位產(chǎn)生器(并不是一個完整的加法器)

    • 74LS182

3. 減法運算

  • 補碼: N 補碼 = 2 n ? N 原碼 N_{補碼}=2^n-N_{原碼} N補碼?=2n?N原碼?
  • 補碼: N 補碼 = N 反碼 + 1 N_{補碼}=N_{反碼}+1 N補碼?=N反碼?+1
  • 將減法變成加法。
    • A ? B = A ? ( 2 n ? B 補 ) = A + B 補 ? 2 n = A + B 反 + 1 ? 2 n A-B=A-(2^n-B_補)=A+B_補-2^n=A+B_反+1-2^n A?B=A?(2n?B?)=A+B??2n=A+B?+1?2n
  • 求4位減法的結(jié)果補碼: A ? B = A + B 反 + 1 A-B=A+B_反+1 A?B=A+B?+1
    • 結(jié)果補碼 D 3 : 0 ’ = A 3 : 0 + ( B 3 : 0 ) 反碼 + 1 , C o 為進位信號 結(jié)果補碼D_{3:0}^’ = A_{3:0}+(B_{3:0})_{反碼}+1,C_o為進位信號 結(jié)果補碼D3:0?=A3:0?+(B3:0?)反碼?+1Co?為進位信號
  • 求結(jié)果的原碼
    • 結(jié)果原碼 D 3 : 0 = [ 結(jié)果補碼 D 3 : 0 ’ , C o ] ? 2 n = [ 結(jié)果補碼 D 3 : 0 ’ , C o ] ? 2 4 = [ 結(jié)果補碼 D 3 : 0 ’ , C o ] ? ( 10000 ) b 結(jié)果原碼D_{3:0}=[結(jié)果補碼D_{3:0}^’,C_o] -2^n=[結(jié)果補碼D_{3:0}^’,C_o] -2^4=[結(jié)果補碼D_{3:0}^’,C_o] -(10000)_b 結(jié)果原碼D3:0?=[結(jié)果補碼D3:0?Co?]?2n=[結(jié)果補碼D3:0?Co?]?24=[結(jié)果補碼D3:0?Co?]?(10000)b?
    • 已知 結(jié)果補碼 D 3 : 0 ’ 數(shù)值范圍是 ( 0000 ) b 到 ( 1111 ) b 結(jié)果補碼D_{3:0}^’數(shù)值范圍是(0000)_b到(1111)_b 結(jié)果補碼D3:0?數(shù)值范圍是(0000)b?(1111)b?
    • C o = 1 C_o=1 Co?=1時,bit4=1, 減去 2 n = ( 10000 ) b 2^n=(10000)_b 2n=(10000)b?,不需要借位,異或0。
    • 中間 D 0 ′ ′ = D 0 ′ ⊕ 0 = D 0 ′ 中間D_0^{''}=D_0^{'}⊕0=D_0^{'} 中間D0′′?=D0?0=D0?
    • 中間 D 1 ′ ′ = D 1 ′ ⊕ 0 = D 1 ′ 中間D_1^{''}=D_1^{'}⊕0=D_1^{'} 中間D1′′?=D1?0=D1?
    • 中間 D 2 ′ ′ = D 2 ′ ⊕ 0 = D 2 ′ 中間D_2^{''}=D_2^{'}⊕0=D_2^{'} 中間D2′′?=D2?0=D2?
    • 中間 D 3 ′ ′ = D 3 ′ ⊕ 0 = D 3 ′ 中間D_3^{''}=D_3^{'}⊕0=D_3^{'} 中間D3′′?=D3?0=D3?
    • 結(jié)果原碼 D 3 : 0 = D 3 : 0 ′ ′ + A 3 : 0 ′ ′ = 結(jié)果補碼 D 3 : 0 ′ = A 3 : 0 + B 3 : 0 反碼 + 1 結(jié)果原碼D_{3:0}=D_{3:0}^{''}+A_{3:0}^{''}=結(jié)果補碼D_{3:0}^{'}=A_{3:0}+B_{3:0}{反碼}+1 結(jié)果原碼D3:0?=D3:0′′?+A3:0′′?=結(jié)果補碼D3:0?=A3:0?+B3:0?反碼+1
    • 舉例:$A≥B,A=0101,B=0001
      • 公式計算:A-B=A+B_{反碼}+1-2^4=(0101)_b+(1110)_b+1-(10000)_b=(10100)_b-(10000)_b=(00100)_b$ //不需要借位,
      • 電路邏輯: A ? B = A 3 : 0 + B 3 : 0 反碼 + 1 A-B=A_{3:0}+B_{3:0}{反碼}+1 A?B=A3:0?+B3:0?反碼+1
    • C o = 0 C_o=0 Co?=0時,bit4=0, 減去 2 n = ( 10000 ) b 2^n=(10000)_b 2n=(10000)b?,需要借位,異或1。
    • 中間 D 0 ′ ′ = D 0 ′ ⊕ 1 = ( D 0 ′ ) 反 中間D_0^{''}=D_0^{'}⊕1=(D_0^{'})_{反} 中間D0′′?=D0?1=(D0?)?
    • 中間 D 1 ′ ′ = D 1 ′ ⊕ 1 = ( D 1 ′ ) 反 中間D_1^{''}=D_1^{'}⊕1=(D_1^{'})_{反} 中間D1′′?=D1?1=(D1?)?
    • 中間 D 2 ′ ′ = D 2 ′ ⊕ 1 = ( D 2 ′ ) 反 中間D_2^{''}=D_2^{'}⊕1=(D_2^{'})_{反} 中間D2′′?=D2?1=(D2?)?
    • 中間 D 3 ′ ′ = D 3 ′ ⊕ 1 = ( D 3 ′ ) 反 中間D_3^{''}=D_3^{'}⊕1=(D_3^{'})_{反} 中間D3′′?=D3?1=(D3?)?
    • 結(jié)果原碼 D 3 : 0 = D 3 : 0 ′ ′ + A 3 : 0 ′ ′ + C ? 1 = D 3 : 0 ′ 反碼 + 1 = ( A 3 : 0 + B 3 : 0 反碼 + 1 ) 反碼 + 1 結(jié)果原碼D_{3:0}=D_{3:0}^{''}+A_{3:0}^{''}+C_{-1}=D_{3:0}^{'}反碼+1=(A_{3:0}+B_{3:0}{反碼}+1)_{反碼}+1 結(jié)果原碼D3:0?=D3:0′′?+A3:0′′?+C?1?=D3:0?反碼+1=(A3:0?+B3:0?反碼+1)反碼?+1
    • 舉例: A < B , A = 0001 , B = 0101 A<B,A=0001,B=0101 A<BA=0001B=0101
      • 公式計算: A ? B = A + B 反碼 + 1 ? 2 4 = ( 0001 ) b + ( 1010 ) b + 1 ? ( 10000 ) b = ( 01100 ) b ? ( 10000 ) b = ( 借位 1 ? 01100 ) b ? ( 10000 ) b = ( 11100 ) b (直接計算得到的就是 ? 4 的補碼) A-B=A+B_{反碼}+1-2^4=(0001)_b+(1010)_b+1-(10000)_b=(01100)_b-(10000)_b=(借位1·01100)_b-(10000)_b=(11100)_b(直接計算得到的就是-4的補碼) A?B=A+B反碼?+1?24=(0001)b?+(1010)b?+1?(10000)b?=(01100)b??(10000)b?=(借位1?01100)b??(10000)b?=(11100)b?(直接計算得到的就是?4的補碼)
      • 電路邏輯: A ? B = ( A 3 : 0 + B 3 : 0 反碼 + 1 ) 反碼 + 1 = ( ( 01100 ) b ) 反碼 + 1 = ( 10011 ) b + 1 = ( 1 ? 0100 ) ,也就是絕對值 = 4 ,符號 = V 借位信號 = 1 ,為負, ? 4 A-B=(A_{3:0}+B_{3:0}{反碼}+1)_{反碼}+1=((01100)_b)_{反碼}+1=(10011)_b+1=(1·0100),也就是絕對值=4,符號=V借位信號=1,為負,-4 A?B=(A3:0?+B3:0?反碼+1)反碼?+1=((01100)b?)反碼?+1=(10011)b?+1=(1?0100),也就是絕對值=4,符號=V借位信號=1,為負,?4
        在這里插入圖片描述

4. 集成算術(shù)/邏輯單元

  • 算術(shù)邏輯單元ALU(Arithmetic Logic Unit)。既支持算術(shù)運算,又支持邏輯運算。
  • 74LS181是雙極型ALU。
  • 功能引腳M=H時,執(zhí)行邏輯運算
  • 功能引腳M=L時,執(zhí)行算術(shù)運算
    在這里插入圖片描述

4.5 組合可編程邏輯器件

4.5.1 PLD的結(jié)構(gòu)、表示方法及分類

1. PLD的結(jié)構(gòu)

  • PLD:可編程邏輯器件
  • 基本組成:與陣列、或陣列。
    在這里插入圖片描述

2. PLD的表示方法

  • 早期使用熔絲和二極管,一次性編程。
  • 可擦除CMOS技術(shù),使用浮柵技術(shù)。
    在這里插入圖片描述

3. PLD的分類

  • 按照集成度劃分:
    • 低密度(1000以下):PROM可編程只讀存儲器、PLA可編程邏輯陣列、PAL可編程陣列邏輯、GAL通用陣列邏輯
    • 高密度(1000以上):CPLD復(fù)雜可編程邏輯器件、FPGA現(xiàn)場可編程門陣列
  • 按照結(jié)構(gòu)體系劃分:
    • 簡單PLD
    • 復(fù)雜可編程邏輯器件CPLD
    • 現(xiàn)場可編程邏輯器件FPGA
  • 按照與或陣列是否可編程劃分:
    • PROM:與陣列固定,或陣列可編程
    • PAL和GAL:與陣列可編程、或陣列固定。
    • PLA:與陣列、或陣列都可以編程。
      在這里插入圖片描述

4.5.2 組合邏輯電路的PLD實現(xiàn)

  • 任何組合邏輯關(guān)系都可以變換成 與或 表達式
  • 通過PLD的與、或陣列,可以實現(xiàn)任何一個邏輯函數(shù)。

1. 可編程邏輯陣列PLA

  • 缺少開發(fā)環(huán)境支持,價格貴。

在這里插入圖片描述

  • L 0 = A  ̄ ? B  ̄ ? C + A  ̄ ? B ? C  ̄ + A ? B  ̄ ? C  ̄ + A B C L_0 = \overline{A}·\overline{B}·C+\overline{A}·B·\overline{C}+A·\overline{B}·\overline{C}+ABC L0?=A?B?C+A?B?C+A?B?C+ABC
  • L 1 = A B + A C + B C L_1=AB+AC+BC L1?=AB+AC+BC
  • 列出真值表之后,可以發(fā)現(xiàn)該電路是“全加器”的功能。
  • 全加器的邏輯表達式:
    S = A  ̄ ? B  ̄ ? C i + A  ̄ ? B ? C i  ̄ + A ? B  ̄ ? C i  ̄ + A B C i = A ⊕ B ⊕ C i S=\overline{A}·\overline{B}·C_i+\overline{A}·B·\overline{C_i}+A·\overline{B}·\overline{C_i}+ABC_i=A⊕B⊕C_i S=A?B?Ci?+A?B?Ci??+A?B?Ci??+ABCi?=ABCi?//異或
    C o = A  ̄ ? B ? C i + A ? B  ̄ ? C i + A ? B = ( A ⊕ B ) ? C i + A ? B C_o = \overline{A}·B·C_i+A·\overline{B}·C_i+A·B=(A⊕B)·C_i+A·B Co?=A?B?Ci?+A?B?Ci?+A?B=AB?Ci?+A?B
    變形: C o = A  ̄ ? B ? C i + A ? B  ̄ ? C i + A ? B = A  ̄ ? B ? C i + A ? B  ̄ ? C i + ( A ? B + A B C + A B C ) 變形:C_o = \overline{A}·B·C_i+A·\overline{B}·C_i+A·B=\overline{A}·B·C_i+A·\overline{B}·C_i+(A·B+ABC+ABC) 變形:Co?=A?B?Ci?+A?B?Ci?+A?B=A?B?Ci?+A?B?Ci?+(A?B+ABC+ABC)//吸收律
    變形: C o = A  ̄ ? B ? C i + A ? B  ̄ ? C i + ( A ? B + A B C + A B C ) = ( A  ̄ ? B ? C i + A B C ) + ( A ? B  ̄ ? C i + A B C ) + A B = B C i + A C i + A B 變形:C_o =\overline{A}·B·C_i+A·\overline{B}·C_i+(A·B+ABC+ABC)=(\overline{A}·B·C_i+ABC)+(A·\overline{B}·C_i+ABC)+AB=BC_i+AC_i+AB 變形:Co?=A?B?Ci?+A?B?Ci?+(A?B+ABC+ABC)=(A?B?Ci?+ABC)+(A?B?Ci?+ABC)+AB=BCi?+ACi?+AB
    變形: C o = B C i + A C i + A B 變形:C_o =BC_i+AC_i+AB 變形:Co?=BCi?+ACi?+AB

2.可編程陣列邏輯PAL

  • 與陣列可編程,或陣列固定。
  • 已知 邏輯表達式,使用PAL與陣列實現(xiàn)該功能。
  • 一個 或單元 接三個可編程 與單元。
  • 沒有使用到的與單元,需要全接通,簡化圖是“與單元中畫一個大的X”,因為正反 在了一起,該支路邏輯值為0。
  • L3有需要4個或輸入,硬件受限,可以使用L0的輸出作為兩個輸入。
    在這里插入圖片描述

4.6 用Verilog HDL描述組合邏輯電路

  • HDL硬件描述語言

4.6.1 組合邏輯電路的門級建模

  • verilog語言內(nèi)置的12個基本門級元件。
分類元件符號功能說明
多輸入門and與門
多輸入門nand與非門
多輸入門or或門
多輸入門nor或非門
多輸入門xor異或門
多輸入門xnor異或非門
----------------------------------------------------------------
多輸出門buf緩沖器
多輸出門not反相器
----------------------------------------------------------------
三態(tài)門bufif1三態(tài)緩沖器,if-如果,控制信號為1-高電平,輸出有效 (in->out)
三態(tài)門bufif0三態(tài)緩沖器 ,if-如果,控制信號為0-低電平,輸出有效(in->out)
三態(tài)門notif1三態(tài)反相器,if-如果,控制信號為1-高電平,輸出有效(in->out)
三態(tài)門notif0三態(tài)反相器,if-如果,控制信號為0-低電平,輸出有效 (in->out)

1. 多輸入門

  • and、nand、or、nor、xor、xnor

  • 只允許一個輸出,但允許有多個輸入。

  • 多輸入門的輸出端out,不可能為高阻狀態(tài)z。
    在這里插入圖片描述

  • 列出真值表,以2輸入為例。

and 與門 i n 1 = 0 in_1=0 in1?=0 i n 1 = 1 in_1=1 in1?=1 i n 1 = x in_1=x in1?=x i n 1 = z ( 高阻 ) in_1=z(高阻) in1?=z(高阻)
i n 2 = 0 in_2=0 in2?=00000
i n 2 = 1 in_2=1 in2?=10out=1xx
i n 2 = x in_2=x in2?=x0xxx
i n 2 = z ( 高阻 ) in_2=z(高阻) in2?=z(高阻)0xxx
nand 與非門 i n 1 = 0 in_1=0 in1?=0 i n 1 = 1 in_1=1 in1?=1 i n 1 = x in_1=x in1?=x i n 1 = z ( 高阻 ) in_1=z(高阻) in1?=z(高阻)
i n 2 = 0 in_2=0 in2?=0out=1out=1out=1out=1
i n 2 = 1 in_2=1 in2?=1out=10xx
i n 2 = x in_2=x in2?=xout=1xxx
i n 2 = z ( 高阻 ) in_2=z(高阻) in2?=z(高阻)out=1xxx
or 或門 i n 1 = 0 in_1=0 in1?=0 i n 1 = 1 in_1=1 in1?=1 i n 1 = x in_1=x in1?=x i n 1 = z ( 高阻 ) in_1=z(高阻) in1?=z(高阻)
i n 2 = 0 in_2=0 in2?=00out=1xx
i n 2 = 1 in_2=1 in2?=1out=1out=1out=1out=1
i n 2 = x in_2=x in2?=xxout=1xx
i n 2 = z ( 高阻 ) in_2=z(高阻) in2?=z(高阻)xout=1xx
xor 異或門 i n 1 = 0 in_1=0 in1?=0 i n 1 = 1 in_1=1 in1?=1 i n 1 = x in_1=x in1?=x i n 1 = z ( 高阻 ) in_1=z(高阻) in1?=z(高阻)
i n 2 = 0 in_2=0 in2?=00out=1xx
i n 2 = 1 in_2=1 in2?=1out=10xx
i n 2 = x in_2=x in2?=xxxxx
i n 2 = z ( 高阻 ) in_2=z(高阻) in2?=z(高阻)xxxx

2. 多輸出門

  • buf緩沖器、not反相器

  • 只能有一個輸入,但允許多個輸出。
    在這里插入圖片描述

  • 列出1個輸出的真值表

buf 緩沖器 i n = 0 in=0 in=0 i n = 1 in=1 in=1 i n = x in=x in=x i n = z ( 高阻 ) in=z(高阻) in=z(高阻)
輸出out101xx
not 反相器 i n = 0 in=0 in=0 i n = 1 in=1 in=1 i n = x in=x in=x i n = z ( 高阻 ) in=z(高阻) in=z(高阻)
輸出out110xx

3. 三態(tài)門

  • bufif1、bufif0、notif1、notif0

  • 有一個輸出,一個輸入,一個控制。

  • 當控制信號為無效時,三態(tài)門輸出高阻狀態(tài)z。
    在這里插入圖片描述

  • if1表示,高電平時允許輸出(in->out),低電平時,輸出高阻狀態(tài)。

  • if0表示,低電平時允許輸出(in->out),高電平時,輸出高阻狀態(tài)。

  • 列出真值表

bufif1 緩沖器 控制信號 c t r l = 0 控制信號ctrl=0 控制信號ctrl=0 控制信號 c t r l = 1 控制信號ctrl=1 控制信號ctrl=1 控制信號 c t r l = x 控制信號ctrl=x 控制信號ctrl=x 控制信號 c t r l = z ( 高阻 ) 控制信號ctrl=z(高阻) 控制信號ctrl=z(高阻)
數(shù)據(jù)輸入 i n = 0 數(shù)據(jù)輸入in=0 數(shù)據(jù)輸入in=0out=z(高阻)out=0out=0或者zout=0或者z
數(shù)據(jù)輸入 i n = 1 數(shù)據(jù)輸入in=1 數(shù)據(jù)輸入in=1out=z(高阻)out=1out=1或者zout=1或者z
數(shù)據(jù)輸入 i n = x 數(shù)據(jù)輸入in=x 數(shù)據(jù)輸入in=xout=z(高阻)xxx
數(shù)據(jù)輸入 i n = z ( 高阻 ) 數(shù)據(jù)輸入in=z(高阻) 數(shù)據(jù)輸入in=z(高阻)out=z(高阻)xxx
notif1 緩沖器 控制信號 c t r l = 0 控制信號ctrl=0 控制信號ctrl=0 控制信號 c t r l = 1 控制信號ctrl=1 控制信號ctrl=1 控制信號 c t r l = x 控制信號ctrl=x 控制信號ctrl=x 控制信號 c t r l = z ( 高阻 ) 控制信號ctrl=z(高阻) 控制信號ctrl=z(高阻)
數(shù)據(jù)輸入 i n = 0 數(shù)據(jù)輸入in=0 數(shù)據(jù)輸入in=0out=z(高阻)out=1out=1或者zout=1或者z
數(shù)據(jù)輸入 i n = 1 數(shù)據(jù)輸入in=1 數(shù)據(jù)輸入in=1out=z(高阻)out=0out=0或者zout=0或者z
數(shù)據(jù)輸入 i n = x 數(shù)據(jù)輸入in=x 數(shù)據(jù)輸入in=xout=z(高阻)xxx
數(shù)據(jù)輸入 i n = z ( 高阻 ) 數(shù)據(jù)輸入in=z(高阻) 數(shù)據(jù)輸入in=z(高阻)out=z(高阻)xxx

4. 舉例

(1) Verilog實現(xiàn)2線-4線譯碼器
  • 2線-4線譯碼器,使用Verilog語言的門級元件進行描述。
    在這里插入圖片描述
  • 2個數(shù)據(jù)輸入A1和A0
  • 1個使能輸入E
  • 4個輸出Y
  • 3個內(nèi)部節(jié)點,使用wire定義。
  • 關(guān)鍵字定義多個元件時,調(diào)用名不能省略,多個調(diào)用名元件之間必須使用逗號分隔。
//門級Gate-Level
//2線-4線譯碼器 2-to-4 line decodermodule _2to4decoder(A1,A0,E,Y);input    A,B,E; //定義輸入信號output [3:0]Y;//定義輸出信號wire     A1not,A0not,Enot;//內(nèi)部節(jié)點信號//非門not n1(A1not,A1),n2(A0not,A0),n3(Enot,E);//與非門nand n4(Y[0],A1not,A0not,Enot),n5(Y[1],A1not,A0   ,Enot),n6(Y[2],A1   ,A0not,Enot),n7(Y[3],A1   ,A0   ,Enot);endmodule
(2) Verilog實現(xiàn)2選1數(shù)據(jù)選擇器
  • 使用了三態(tài)門緩沖器bufif0,bufif1。
    在這里插入圖片描述

  • 重點:L同時受兩路信號驅(qū)動。在多驅(qū)動元的情況下邏輯值會發(fā)生沖突,?從而產(chǎn)生不確定值。?類似于競爭冒險。

  • 在Verilog中:

    • 線網(wǎng) wire:用于表示單個門驅(qū)動或連續(xù)賦值語句驅(qū)動的網(wǎng)絡(luò)數(shù)據(jù)類型,?
    • 三態(tài)線網(wǎng) tri:用來表示多驅(qū)動器驅(qū)動的網(wǎng)絡(luò)型數(shù)據(jù)。?
    • 當沒有定義wire和tri的邏輯強度時,?在多驅(qū)動元的情況下邏輯值會發(fā)生沖突,?從而產(chǎn)生不確定值。?
//門級Gate-Level
//2線-1線數(shù)據(jù)選擇器 2-to-1-line multiplexer
module _2to1muxtri(A,B,SEL,L)input A,B,SEL;output L; //定義輸出信號tri L;//tri數(shù)據(jù)類型(三態(tài)線網(wǎng)),多驅(qū)動網(wǎng)絡(luò)類型。bufif1(L,B,SEL);bufif0(L,A,SEL);
endmodule

5. 分層次的電路設(shè)計方法簡介

  • 自頂而下(top-down):先定義頂層模塊,再定義頂層模塊用到的子模塊。
    在這里插入圖片描述

  • 自底向上(bottom-up):先定義底層的各個子模塊,再將子模塊組合起來,構(gòu)成頂層模塊。

    • (1)使用門級元件定義底層的半加器。
    • (2)調(diào)用2個半加器+一個或門,定義一個全加器。
    • (3)調(diào)用4個1位全加器,構(gòu)成頂層的4位全加器。
  • 上層模塊調(diào)用下層模塊時,通過模塊名完成調(diào)用過程,調(diào)用名不能省略。

    • 調(diào)用模塊時,按照原來端口的排列順序,可以使用一套新的端口,也可以使用同名的舊端口。
    • 調(diào)用模塊時,按照端口名稱,對應(yīng)下層模塊端口名稱。順序任意。 " . 下層端口 ( 上層端口 ) ? > . S ( S 1 ) " ".下層端口(上層端口)->.S(S1)" ".下層端口(上層端口)?>.S(S1)"
verilog實現(xiàn)4位全加器
  • 非超前進位加法器
  • 底層半加器
    在這里插入圖片描述
//半加器
module halfadder(S,C,A,B)input A,B;output S,C;//和xor(S,A,B);//S=A⊕B//進位and(C,A,B);//C=AB
endmodule
  • 2個半加器+1個或門=1個1位全加器
    在這里插入圖片描述
//全加器
module fulladder(S,CO,A,B,CI)input A,B,CI;output S,CO;wire S1,D1,D2;//計算中間值S1,D1halfadder HA1(S1,D1,A,B);//和halfadder HA2(S,D2,S1,CI);//進位or g1(CO,D2,D1);
endmodule
  • 4個1位全加器=1個4位全加器
    在這里插入圖片描述
module _4bit_adder(S,C3,A,B,C_1)input [3:0]A,B;input C_1;output [3:0]S;output C3;wire C0,C1,C2;//內(nèi)部進位信號fulladder FA0(S[0],C0,A[0],B[0],C_1),FA1(S[1],C1,A[1],B[1],C0),FA2(S[2],C2,A[2],B[2],C1),FA3(S[3],C3,A[3],B[3],C2);
endmodule

4.6.2 組合邏輯電路的數(shù)據(jù)流建模

  • 門級建模太費事,工作效率低。
  • 使用數(shù)據(jù)流建模,較高的抽象級別,描述電路。
  • 通過“綜合軟件”,能夠自動轉(zhuǎn)換成門級電路。

1. 運算符

  • 大約30個運算符。
類型分類符號功能說明
算術(shù)運算符雙目運算符+二進制加
算術(shù)運算符雙目運算符-二進制減
算術(shù)運算符雙目運算符*二進制乘
算術(shù)運算符雙目運算符/二進制除
算術(shù)運算符雙目運算符%求模
--------------------------------------------------------
關(guān)系運算符雙目運算符>大于
關(guān)系運算符雙目運算符<小于
關(guān)系運算符雙目運算符>=大于等于
關(guān)系運算符雙目運算符<=小于等于
關(guān)系運算符雙目運算符==等于
關(guān)系運算符雙目運算符!=不等于
關(guān)系運算符雙目運算符===全等于
關(guān)系運算符雙目運算符!==不全等于
--------------------------------------------------------
位運算符雙目運算符~按位取反
位運算符雙目運算符&按位與
位運算符雙目運算符|按位或
位運算符雙目運算符^按位異或
位運算符雙目運算符^~ 或 ~^按位同或
--------------------------------------------------------
縮位運算符單目運算符&縮位與
縮位運算符單目運算符~&縮位與非
縮位運算符單目運算符|縮位或
縮位運算符單目運算符~|縮位或非
縮位運算符單目運算符^縮位異或
縮位運算符單目運算符^~ 或 ~^縮位同或
--------------------------------------------------------
邏輯運算符-!邏輯非
邏輯運算符-&&邏輯與
邏輯運算符-||邏輯或
--------------------------------------------------------
移位運算符雙目運算符>>右移
移位運算符雙目運算符<<左移
--------------------------------------------------------
位拼接運算符-{ , } { { } }將多個操作數(shù)拼接成一個操作數(shù)
--------------------------------------------------------
條件運算符三目運算符?:如果真,則,否,則

2.舉例

(1)連續(xù)賦值語句 assign
  • verilog語言中,基本語句是“連續(xù)賦值語句”。
  • 針對wire型變量進行賦值。
  • 這里的“連續(xù)”,表示持續(xù)性賦值,而不是一次性。
  • 如下所示,只要等式右邊邏輯值發(fā)生變化,會立即被計算出,并賦值給左邊的變量
wire A,B,SEL,L;//4個連線型變量assign L = (A&~SEL)|(B&SEL);//連續(xù)賦值
  • 例如1:前文門級實現(xiàn)的2-4譯碼器,重新描述如下:
module decoder_df(A1,A0,E,Y);input A1,A0,E;output [3:0]Y;assign Y[0] = ~(~A1 & ~A0 & ~E);//000assign Y[1] = ~(~A1 &  A0 & ~E);//010assign Y[2] = ~( A1 & ~A0 & ~E);//100assign Y[3] = ~( A1 &  A0 & ~E);//110
endmodule
  • 數(shù)據(jù)流與門級建模對比
    在這里插入圖片描述
  • 例如2,4位全加器,重新實現(xiàn):
  • 被加數(shù)、加數(shù)都是4位的,如果發(fā)生進位,結(jié)果可能是5位。
  • 用{Cout,SUM}拼接起來,Cout接收bit4,SUM接收bit[3:0]。
module binary_adder(A,B,Cin,SUM,Cout);input [3:0]A,B;input Cin;output [3:0]SUM;output Cout;assign {Cout,SUM} = A+B+Cin;
endmodule
  • 數(shù)據(jù)流與門級建模對比
    在這里插入圖片描述

  • 例如3,2選1數(shù)據(jù)選擇器

  • 使用連續(xù)賦值語句

module mux2x1_df(A,B,SEL,L);input A,B,SEL;output L;assign L=SEL?A:B;
endmodule
  • 數(shù)據(jù)流與門級建模對比
    在這里插入圖片描述

4.6.3 組合邏輯電路的行為級建模

  • 描述數(shù)字邏輯電路的功能和算法。

  • always是一個循環(huán)執(zhí)行語句,后面跟著循環(huán)執(zhí)行條件。

  • 在always結(jié)構(gòu)中,邏輯表達式就是一種過程賦值語句。

always @( 循環(huán)執(zhí)行的條件 )  //不加分號“;”
//括號里的任何一個變量發(fā)生變化時,都會觸發(fā)執(zhí)行后面的過程賦值語句。
//執(zhí)行完最后一句后,執(zhí)行掛起,always語句再次等待變量發(fā)生變化。
//因此,循環(huán)執(zhí)行條件被稱為,“敏感變量”。
always @( 敏感變量 ) 
//敏感變量之間,使用關(guān)鍵詞or,代替邏輯或運算“|”
  • always結(jié)構(gòu),過程賦值語句,只能給reg類型的變量賦值。

  • 條件語句(if-else)

  • 多路分支語句(case-endcase)

1. 條件語句

  • condition_expr 一般是 邏輯表達式或者關(guān)系表達式
  • condition_expr = 0,x,z時,按照“假”處理。
  • condition_expr = 1,按照“真”處理,并執(zhí)行相應(yīng)的語句。
if(condition_expr) true_statement; if(condition_expr) true_statement; 
else fale_statement;if(condition_expr1) true_statement1; 
else if(condition_expr2)true_statement2;
else if(condition_expr3)true_statement3;
......
else default_statement;

2. 多路分支語句

  • 先計算case_expr的值。
  • 每個分支可以是單條語句,也可以是多條語句。
  • 多條語句時,需要用begin和end包圍著,構(gòu)成一個整體(順序語句塊)。
  • 每個分支的表達式的值,必須不同。執(zhí)行完某一個分支后,case語句結(jié)束。(不需要break)
  • 連續(xù)幾個分支,都執(zhí)行同樣的表達式,可以用逗號分隔各個分支表達式,將執(zhí)行語句放在其中最后一個表達式的后面。
case(case_expr)
item_expr1: statement1;
item_expr2: statement2;
......
default: default_statement;//可以省略
endcase

3. 舉例

  • 2選1數(shù)據(jù)選擇器。
  • 因為過程賦值語句,只能給reg數(shù)據(jù)賦值,所以需要把輸出L定義成reg類型。
module mux2to1_bh(A,B,SEL,L)input A,B,SEL;output L;reg L; //always @(SEL or A or B)    //敏感變量,任何一個變化,都會觸發(fā)執(zhí)行if(SEL == 1)L=B; //if(SEL) L=B;else L=A;
endmodule
  • 4選1數(shù)據(jù)選擇器
module mux4to1_bh(A,SEL,E,L)input [3:0]A;input [1:0]SEL;input E;output L;reg L; always @( A or SEL or E)    //敏感變量,任何一個變化,都會觸發(fā)執(zhí)行begin if(E==1) L=0;  else case(SEL)2'd0: L=A[0];2'd1: L=A[1];2'd2: L=A[2];2'd3: L=A[3];endcaseend
endmodule
http://www.risenshineclean.com/news/45500.html

相關(guān)文章:

  • 百度中搜到網(wǎng)站名字電商培訓(xùn)內(nèi)容
  • 如何快速做企業(yè)網(wǎng)站包括商城常見的營銷方式有哪些
  • 什么是權(quán)重高的網(wǎng)站搜狗站長
  • 國外獨立站建站站長工具seo綜合查詢推廣
  • 廣州網(wǎng)匠營銷型網(wǎng)站建設(shè)公司濟南網(wǎng)站seo
  • Wordpress網(wǎng)站調(diào)用代碼2024年新冠疫情最新消息今天
  • 陽江市企業(yè)網(wǎng)站優(yōu)化企業(yè)如何進行宣傳和推廣
  • 網(wǎng)站建設(shè)優(yōu)化服務(wù)特色高端網(wǎng)站設(shè)計
  • 重慶唐卡裝飾公司深圳市企業(yè)網(wǎng)站seo
  • 建網(wǎng)站開源代碼全國新冠疫情最新消息
  • wordpress用戶名忘記密碼廣州seo站內(nèi)優(yōu)化
  • 網(wǎng)站內(nèi)容建設(shè)的原則是什么意思整合營銷策略有哪些
  • 用老域名做網(wǎng)站還是新域名武漢seo首頁優(yōu)化技巧
  • ??谧鼍W(wǎng)站公司哪家好網(wǎng)頁快照
  • 網(wǎng)站工程師的職責(zé)網(wǎng)站推廣的6個方法是什么
  • url怎么做網(wǎng)站百度上海分公司
  • 網(wǎng)絡(luò)營銷推廣方案pdf站長工具seo綜合查詢
  • soho外貿(mào)建站拼多多seo 優(yōu)化軟件
  • 網(wǎng)站登錄不上怎么回事站長是什么職位
  • 電子工程網(wǎng)官方網(wǎng)站網(wǎng)址怎么注冊
  • 做搜狗網(wǎng)站優(yōu)化搜索數(shù)據(jù)
  • 網(wǎng)站域名設(shè)計推薦百度推廣培訓(xùn)班
  • 網(wǎng)站建設(shè)遠程工作搜索引擎優(yōu)化方案
  • 網(wǎng)站建設(shè)前期預(yù)算端點seo博客
  • 物流企業(yè)網(wǎng)站有哪些百度網(wǎng)站優(yōu)化排名
  • 做公司網(wǎng)站 找誰做網(wǎng)絡(luò)營銷主要學(xué)什么
  • 做網(wǎng)站 信息集成過程的順序品牌營銷策略案例
  • UE做的比較好的網(wǎng)站軟文的概念是什么
  • 開獎網(wǎng)站怎么做營銷推廣網(wǎng)
  • 長春老火車站圖片如何宣傳推廣自己的產(chǎn)品