数字逻辑笔记
目錄
數制轉換
十進制數轉二進制數和八進制數
二進制、八進制與十六進制之間的轉化
所有進制轉十進制
十進制數轉換成 8421BCD 碼
BCD 碼 與循環碼
?已知輸入與輸出的部分情況,列出真值表并寫出輸出信號的邏輯表達式
化簡邏輯函數/求函數的值
代數法:
?求一個邏輯函數的對偶式
卡諾圖法:
將函數展開為最小項表達式:
邏輯圖、波形圖、VHDL語句
與運算(邏輯乘):
或運算(邏輯加):
邏輯圖的題型:
組合邏輯
組合邏輯分析:給出一邏輯電路圖,其中有控制輸入端,讓列出真值表說明輸出與輸入的關系/說明邏輯功能
用器件實現功能
數據選擇器/多路轉換器( MUX )74LS153
數據分配器( DMUX )
譯碼器 74LS139(2:4)/74LS138(3:8)/74LS154(4:16)
七段數字譯碼器 74LS48
編碼器
比較器 74LS85
加法器:全加器 FA / 半加器 HA
奇偶校驗器 74LS280
判斷競爭冒險
時序邏輯
鎖存器:基本 SR 鎖存器(高/低電平有效)、門控 SR 鎖存器、門控 D 鎖存器
觸發器:SR / RS 、D 、JK 、T
寄存器(邊沿 D 觸發器)、移位寄存器
同步計數器
移位計數器
題型一:給出一部分波形圖,讓補全輸出信號的波形
題型二:給出邏輯電路圖,分析時序/計數電路
自產自銷類型(輸入端和輸出端連一起了)
狀態轉移表 + 狀態轉移圖
判斷自啟動和幾進制計數器
題型:用觸發器構成計數器
判斷米里型還是摩爾型
做輸入序列檢測器
根據波形確定計數器有幾個狀態
狀態編碼
設計寄存器堆
陣列圖
ROM 容量計算 + 一堆亂七八糟芯片所需片數的計算
數制轉換
- 基數:即 R 進制中的 R ,此進制中逢 R 進一
- 位權:數碼所處的位置,例如 中 的 位權 為 0 , 的 位權 為 1 ,一般認為 整數部分的最低位 為 第 0 位;若有小數部分,則小數部分首位的位權為 -1
十進制數轉二進制數和八進制數
- 整數部分,除 基數 取余,商為 0 時可停止,否則一直將 商 作為 被除數 循環與 基數 除
- 小數部分,乘 基數 取整,精度滿足要求時可停止,否則一直將 積 作為 乘數 循環與 基數 乘
- 題目未要求就是給出的數字的小數位數
結果順序:
十進制數過大時,也可先轉化為八進制,再進行 ↓
二進制、八進制與十六進制之間的轉化
- 二進制與八進制位權對應關系:(三位 2 對應一位 8 )001 → 1 , 010 → 2 ,100 → 4 ,111 → 7 = 1 + 2 + 4 ,同理 8 轉 2
- 8 轉 2:將八進制數 每一位 拆開用 三位 二進制數分別表示
- 2 轉 8:每三位 二進制數 用 一位 八進制數 表示
- 小數部分同理適用,位數不夠時,整數部分為左邊補零,小數部分為右邊補零
10 轉 2 再轉 8 的情況可在此方法下應用:
由于 意味著將 二進制數 k 左移 n 位(若是 ÷ 則是右移),
那么,可將一個數字拆分,譬如
備注:這個方法就是 2 轉 10 的逆方法,在考試里若為大題不如按書上取余做,選填無妨
- 十六進制與八進制的轉換僅能通過二/十進制進行鏈接
- 十六進制二進制互轉同理 2 與 8 ,只是 1 位十六進制 對應 4 位二進制
所有進制轉十進制
- 每位上的數 * 基數為底的位權次方 的總和 即為所求轉換成的十進制數
二進制數過長可轉為八/十六進制再進行該方法,注意別錯位
十進制數轉換成 8421BCD 碼
- 即,用 四位二進制數 來表示 一位十進制,8421 分別為每位的 權
- 換算方法同理十六進制與二進制,但 8421 碼最大僅能為 9,四位二進制表示一位十六進制,最大可為 F
- 故,8421 碼是為了用來表示十進制數,總權加起來 > 9 的 8421 碼是不存在的
- 重點:別把 BCD 跟十進制轉二進制搞混了,同一個十進制數的 BCD 碼不一定等于轉換的二進制,要轉換就乖乖按前面方法做
BCD 碼 與循環碼
- 碼通常是以邏輯電路功能分析和組合邏輯設計讓實現碼的轉換的形式出現,是跟真值表掛鉤的,需要知道怎么取
- 像 8421 這種數字開頭的 BCD 碼指的就是用四位二進制數來表示十進制數,對應數字即對應位置的權,跟 8421 BCD 碼換算同理
- 余 3 碼:在 8421 的基礎上加個 3 ,即加個 0011,所以題目問到的時候說輸入,不用把十六種情況都列出來
- 循環碼:不屬于 BCD 碼,所以不局限于 0 ~ 9 → 任何相鄰的碼字中,僅有一位代碼不同,其他相同
- 雖然不知道老師在不在意循環碼在真值表中書寫的順序,不過可以用卡諾圖來記憶,按照正常的卡諾圖來讀它們每格的編號:
- 當 AB 為豎行時:第一行從左往右,第二行從右往左,第三行從左往右這樣迂回讀取,就是循環碼的順序
- 當 AB 為橫行時:縱向迂回讀
下圖是循環碼轉格雷碼,
- 格雷碼: 和循環碼同理記憶,沒有范圍約束
?已知輸入與輸出的部分情況,列出真值表并寫出輸出信號的邏輯表達式
- 由題目條件 → 列出真值表 → 寫邏輯表達式
譬如例題“一個電路有三個輸入端……,當其中兩個輸入端為高電平時,輸出 X 為高電平”
- 列真值表(列即 輸入端:A 、B 、C ……與 輸出端:X ……,填入數據為 信號 0、1):
- 先將全部輸入端信號可能存在的情況列在表格中,有 n 個輸入端,便會有 種情況,表格就會有 行
- 再根據題目中的條件來判斷輸出端的輸出情況,由此填輸出端那列的值
例題中的意思便是當兩個輸入端為 1 1 時,輸出 X 輸出的就會 是 1 ,不滿足有兩個輸入端為高電平的情況,輸出 X 輸出就會是 0
- ?寫出邏輯表達式:
- 第一種方法:找出真值表中所有輸出為 1 的行,此類行中每行對應的輸入變量作乘積(輸入時為 0 的變量上加 非號),最終將所有乘積項加起來
- 第二種方法:找出真值表中所有輸出為 0 的行,此類行中每行對應的輸入變量求和(輸入時為 1 的變量上加 非號),最終將所有求和項作乘積
- 兩種方法后都需化簡才能作為最終的邏輯表達式(不過書上習題答案沒有化簡,可以先放著,寫完所有題回來有空化簡)
化簡邏輯函數/求函數的值
- 當然求函數的值可以直接代
- 布爾代數基本定律也具有 結合律、交換律、分配律
- 注意:題目中可能要求了必須用什么方法
代數法:
- 并項法:
- 吸收法:
- 消因子法:
- 消項法:(一般也倒過來用,多余項定律)
- 配項法: , (注意后者是 1 ,不是 A )
- 摩根定律(反演律):
- 吸收律(部分已規劃至前面方法中):
- 由于代入規則的存在,上述式子皆可擴展至多項(將 A 、B 以 AB 之類的代替)
- 沒法化簡,另外注意 A + A非 = A ,A · A非 才= 0
?求一個邏輯函數的對偶式
- ?與(·)→ 或(+),或(+)→ 與(·)
- 遵守 先與后或 的運算順序,即,先把 與 給變成 或 ,再把 或 變成 與
卡諾圖法:
- 建議看完下面最小項再來看卡諾圖
- 最小項:輸入變量總共 n 個,那么這 n 個變量相與,但每個變量出現且僅出現一次(并且是獨立狀態出現,即出現的狀態要么是 AB ,要么是 ,決不能是 )
- 看看形式就好,注意點在第三列/第三行是 11 而不是 10
- 可以這樣記:(前提是 AB 為橫排)三變量的第一列 m 的下標從上往下是 0 1,之后每列對應 + 2 ,第三列與第四列交換位置;四變量的下標是 0 1 3 2,之后每列對應 + 4 ,第三列與第四列交換位置;如果忘了也沒事,按每格 ABC 的取值二進制轉十進制就是了
備注:鉛筆標,寫完 1 跟 無關項 就擦掉,否則很影響圈
- 將邏輯函數(一般需要將函數 → 最小項之和形式/“與或”表達式,展開為最小項方法在下面)中出現的最小項在卡諾圖中標出(取值為 1 )
- 真值表也可轉為卡諾圖:輸出為 1 時的輸入變量情況對應在卡諾圖中填 1 就行
- 此處的相鄰并不受表格邊緣限制,找到就圈出來(主要圈的是 1 ,無關項是幫忙輔助圈 1 的,即 它 可 0 可 1 ,看你圈東西時候的需要)
- 兩個相鄰的 1 可合并,保留相同的部分(消 1 變量)
- 四個相鄰的 1 可合并,保留相同的部分(消 2 變量)
- 八個相鄰的 1 可合并,保留相同的部分(消 3 變量),此類型中,表格兩端豎著的列并不能合并消變量
- 一個方格可被包圍多次,但每個包圍圈必須有新的方格:在此情況下,能圈多就圈多!!!
- 保留的相同部分,變量取的是 0 時記得對應取非,1 就是原變量,最后全部保留的加起來
- 做題思路:邏輯函數轉換為合適的形式 → 畫出卡諾圖 → 找 8 保 1 → 找 4 保 2 → 找 2 保 3 → 孤立的 1 圈出來 → 寫出合并后的最簡“與或”表達式
- 無關項:
將函數展開為最小項表達式:
- 將最小項中頭頂非符號的認為 0 ,不帶的為 1,看做二進制編碼,對應十進制的值即為最小項代表符號的下標
譬如, 即看做 010 ,對應十進制為 4 ,那么此最小項的符號即為
- 原式一般都是一堆非符號疊加,需要使用到摩根定律
- 一般都會有需要擴成最小項的項,注意是一個變量一個變量擴,因為 AB + = 1 != AB +
建議寫完最后來合并同樣的,否則容易出錯
- 最終式子化成最小項之和的模式
比如這樣,
邏輯圖、波形圖、VHDL語句
與運算(邏輯乘):
- 與運算表達式:F = A · B
- 與門符號(多輸入的就多加個引腳):
- VHDL語言:F <= A and B
或運算(邏輯加):
- 或運算表達式:F = A + B
- 或門符號:
- 同或相當于異或做了個非運算
(我?心梗了,這塊都寫完了給我吞了,我先復習別的了,就不補了,后面有空回來補,md,反正很簡單,就是把符號什么的對應的VHDL語句背了,還有考試可能會有另一種形式的門對應就行)
邏輯圖的題型:
- 題型一:根據邏輯表達式畫出真值表、卡諾圖、邏輯圖、波形圖、VHDL語句,其中邏輯圖有可能被限制使用的器件/器件個數
- 解題思路:
- 真值表和卡諾圖前面說過
- 邏輯圖就是邏輯電路圖:使用布爾代數將表達式轉化成符合的情況,直接畫就行
- 波形圖根據真值表輸入與輸出的對應情況畫準就行(輸入開始跳變的時候,輸出就跟著跳變了,所以不會不對齊)
- VHDL 語句記得邏輯順序,與或適當用括號隔開
- 題型二:給出邏輯圖,補全波形圖或者寫出上面那些一系列的東西
- 根據邏輯圖寫出輸出的表達式,列真值表 → 補全波形圖,跟上面差不多
- 可以出的題型也就那些,下面也算吧
組合邏輯
組合邏輯分析:給出一邏輯電路圖,其中有控制輸入端,讓列出真值表說明輸出與輸入的關系/說明邏輯功能
- 題型三:
- ① 根據控制輸入端的分布將總的輸出 F 拆分成幾個小的輸出? 之類(根據題意來,一般都是總輸出上一級的與/或門的輸出拆成小輸出,最后經過邏輯運算形成總輸出)
- ② 根據電路圖,寫出每個小輸出的表達式(式子出來的形式是輸入變量和控制輸入變量的邏輯運算)
- ③ 根據電路圖,寫出總輸出的表達式(式子出來的形式同上)
- ④ 根據每個小輸出的表達式,畫出其用到的控制輸入端與該小輸出的關系的表格(控制輸入端那里就是 0 、1 的可能取值,小輸出寫出的形式是將控制輸入端取值代入后其表達式剩下的東西)
- ⑤ 注意,小輸出出來的結果若是兩個變量總體被非之類形式,用摩根定律拆成單個變量頂非號那種
- ⑥ 將小輸出的表格根據關系進行排列組合,比如這樣(這個例子是 F = ,不同題不同分析)
- 題型四:給出邏輯圖,讓畫出真值表,并說明其邏輯功能
- 說明邏輯功能的題都是看真值表呈現出的特性來做的
- ① 不管題目讓不讓畫真值表,都先看邏輯圖,寫表達式,畫真值表
- ② 根據真值表說明取 1 的時候是什么情況
- ③ 這里注意下,如果題目本身就是拆分成 的樣子,那么每個輸出都單獨說一遍取 1 是什么情況,找特點,最后看整體有沒特點,如果一眼看不出來,先做完別的題再回來看特點,實在不行就擺上小輸出分別說的也行;另外,如果小輸出也實在看不出特點,就把取 1 取 0 的情況隨便分類說一遍也可
- 比如,
- 同類題型:給出轉換器件的電路圖,分析輸出的是什么(就是邏輯功能的分析)
- 題型五:套娃類型的電路
- 沒必要每個都必須寫出完全拆開的表達式,只需要寫出它跟上一級的關系表達式就行
- 之后根據低層畫出真值表然后根據里面關系來層層填表更方便些(異或同或用來填真值表更沒必要拆開了)
- 這類題里面有可能出現控制輸入端,根據題可能會根據控制信號的 0 、1 進行分類討論
用器件實現功能
- ① 將題目要求實現的功能抽象 → 畫真值表
- ② 根據真值表 → 畫卡諾圖(不用圈):輸出的所有情況寫進對應格子里(小輸出的 0 、1 情況,注意是輸入的取值格子里對應的輸出情況) + 根據題目判斷出的無關項 φ 寫進格子(其實我覺得有沒卡諾圖沒區別)
- ③ 根據真值表 → 寫出每一輸出的表達式,最小項表達式
- ④ 接下來就是看給的什么器材了,如果沒指定器材就拿寫出來的最簡表達式照常畫圖(題目中可能還有使能端的要求,下圖是 EN 低電平有效,這種就要加上)(這個時候還是做做卡諾圖)
比如這樣,
- ⑤ 具體內容在對應每個器件下面
- ⑥ 固定 0 為接地,1 為電源,低電平就是非變量,不固定的根據輸入變量畫邏輯電路圖就行
- 畫圖照例可拆開原變量與非變量、線可交叉
數據選擇器/多路轉換器( MUX )74LS153
- 多路輸入、單路輸出
- 大體上來看就是 ① 輸入數據端 / ② 輸入控制端 / ③ 輸出端(一個 MUX 僅一路輸出)
- 輸入數據端與輸入控制端存在 的關系:
- 說的二選一/四選一…器件里的 二、四…指的是輸入數據端的個數,那么控制端就是對應的 一、二…(雙四選一是兩片 MUX 并在一起,所以兩片雙四選一拆開看就是四片 MUX )
- 控制端對應輸入的信號就是對數據輸出的下標選擇,比如說四選一里的控制端是 00 ,那么輸出的就是 …以此類推
- ⑤ 續上題,最小項表達式 → 使用邏輯函數對照法,畫圖時 EN 接
即:
- 這張圖里,X 、Y 為控制輸入端,D 那些是數據輸入端,而出來的 D 關于 Z 的表達式就是畫圖的時候要通過電路給四個數據輸入端的引腳送信號的依據
- 另外,如果出來的只是單個變量的話,可以看看真值表,直接拿 0 、1 替了得了
個人認為,不是根據看誰長得接近控制端而提取誰,應該一般都是以高位作為地址/控制輸入端
數據分配器( DMUX )
- 單路輸入、多路輸出
- 大體上來看就是 ① 輸入數據端 / ② 輸入控制端 / ③ 輸出端(一個 DMUX 僅一路輸入,但多路輸出)
- 輸出端與輸入控制端存在 的關系:
- 說的 1 線 - 4 線…器件里的1…指的是輸入數據端的個數,4 就是輸出端的個數
- 控制端對應輸入的信號就是對數據輸出的下標選擇,被選擇到的輸出端即與輸入端輸入數據相同,余下輸出端都為 1
譯碼器 74LS139(2:4)/74LS138(3:8)/74LS154(4:16)
- 大體上看組成是 ① 使能端 / ② 輸入端 / ③輸出端
- ?輸出端與輸入端存在 的關系:
- 通常說的 3:8 譯碼器 中 3 為輸入端的個數,8 為輸出端的個數,使能端為 3 個( 2:4 的使能端只是一個 G ),必須滿足 , = 0 的條件(一高電平有效,兩低電平有效),不滿足條件的話,不管數據輸入什么,譯碼輸出全 1
- 輸入端輸入的信號就是對數據輸出的下標的選擇,被選擇到的輸出端數據為 0 ,余下輸出端都為 1
- ⑤ 數據選擇器輸入的是控制輸入端與操作下作為數據輸入的信號,而譯碼器輸入的就是它的數據輸入端,只不過出來的輸出量是需要經過電路才變成最終轉換出的輸出
- 而最小項表達式 → 譯碼器的輸出與最終輸出之間的電路;同理可拆分原變量和非變量,只是就是一邊是譯碼器的連接,一邊是最終輸出與譯碼器輸出的兩張圖了,記得中間用箭頭連接
- 另外,因為譯碼器被選中出來的話就是 0 ,所以譯碼器出來的輸出是低電平有效,所以往往最小項表達式需要使用摩根定律
- 表格里是從左到右下標依次減小的,畫圖的時候記得對應下
七段數字譯碼器 74LS48
- 共陽/陰極電路:不同的連接方式,7 個發光二極管共用一個陽/陰極;區別就是共陰極高電平有效,共陽極低電平有效
- 真值表輸入方其實就是 8421 BCD 碼,輸出端就是 BCD 對應的十進制顯現出來該亮的二極管
此類題最好先進行畫圖,像下面這樣,
- ?這個表達式有些輸出用真值表看 0 的方法做比較容易寫,但是看 0 就是遇 1 輸入加非
編碼器
- 輸入個數大于輸出個數,輸出四位,組成 BCD 碼,輸入十位 是十進制數碼,所以是個十進制數碼 → BCD 碼的轉換,剛好跟譯碼器相反
- 大體上來看是 ① 輸入端 / ② 輸出端
比較器 74LS85
- 兩組輸入(八個輸入端)+ 比較結果的輸出(三個輸出端從低到高:> = <)+ 三個級聯輸入(從高到低:> = <)(是用于 4 位比較器的擴展)
- 高位的那個 74LS85 的級聯 = 接高電平,其余接地,跟低位的 74LS85 對應將前者輸出和后者級聯連接起來就可構成 8 位數據比較器
加法器:全加器 FA / 半加器 HA
- 三個輸入端(加數、被加數、低位進位信號)+ 輸出端(兩個,一個是向高位進位的信號,一個是輸出結果)
- 半加器:兩個一位二進制數相加,并且能向高位進位的電路
- 全加器:兩個一位二進制數相加的同時再加上低位來的進位的邏輯電路
奇偶校驗器 74LS280
- 偶數個 1 和數總為 0 ,奇數個 1 ,和數總為 1
判斷競爭冒險
- 代數法:
- 就是說如果式子里一個變量同時以原變量的形式和非變量的形式出現,那么就具有競爭力
- 其次,將沒有競爭力的變量和有競爭力的變量排列組合寫出所有能出現的情況,然后表達式代入值,只留另一個變量的形式,看會不會滿足上面的形式,而滿足上面的形式就說它具有險象
- 卡諾圖法:化簡的圓相切,且相切處無其他圈包含
- 冒險出現在變量發生變化的時刻,可以通過卡諾圖增加冗余項將兩個圈交際起來
時序邏輯
鎖存器:基本 SR 鎖存器(高/低電平有效)、門控 SR 鎖存器、門控 D 鎖存器
- 鎖存器是時序邏輯電路的基本單元
-
? 和 :現態和次態,翻轉前為現態,反轉后為次態
- 組成:一個固定的時序脈沖輸入端(內部寫的是 EN ) + 根據名字確定的輸入端( SR 是 S 、R ,D 只有一個 D )+ 兩個輸出端(? 和 )
- SR 鎖存器高低電平看輸入端有無圓圈符號
- 功能表:
- ① 基本 SR :(高電平)11 不穩,00 不變;(低電平)00 不穩,01 置 1 ,10 置 0 ,11 不變
- ② 門控 SR :EN = 0 和 00 不變,10 置 1 ,01 置 0
- ③ 門控 D :D 和 EN 對應:01 置 0 ,10 置 1 ,EN = 0 不變
- 狀態方程:
- ① 基本 SR :(此為高電平,低電平將 S 、R 替換成對應非變量就行)
- ② 門控 SR :
- ③ 門控 D :
觸發器:SR / RS 、D 、JK 、T
- 看見 RS 記 SR ,好對應功能表
- 組成:一個固定的時序脈沖輸入端(內部是個底邊貼器件邊緣的小三角) + 根據名字確定的輸入端( SR 和 JK 都是兩個( SR → S 、R ;同理 JK ),D 就只有一個 D,同理 T )+ 兩個輸出端(記得 Q 的 非變量 的輸出端那里要有個小圓圈)
- 波形圖:是在時鐘脈沖( CP )的邊沿改變狀態的,看器件符號的 CLK 那個小三角旁邊有沒有圓圈(非),有的話就是在 CP 的下降沿改變狀態的,就叫負邊沿觸發器,沒有就是在 CP 的上升沿改變狀態的
- 功能:(保持 → 次態 = 初態,送數/置 0/1 → 次態 =( 01 時)0 = ( 10 時)1 ,翻轉 → 次態 = 初態 的 非變量,不穩 → 不確定次態)
- ① SR :XX 和 00 都是保持,01 和 10 前者置 0 ,后者置 1,11 是不穩
- ② D :XX 是保持,0 和 1 是送數,前者送 0 ,后者送 1 ,沒有 11
- ③ JK :XX 和 00 都是保持,01 和 10 都是送數,11 是翻轉
- ④ T :0 是 ,1 是
- 狀態方程:
- ① SR :
- ② D :
- ③ JK :
- ④ T :
寄存器(邊沿 D 觸發器)、移位寄存器
- 邊沿 D 觸發器:邊沿觸發,輸出控制為 1 時為高阻態,為 0 且 CP 為 0 時輸出不變,余下情況 D 輸入是什么輸出就是什么數
- 移位寄存器:就是將觸發器首尾相連
同步計數器
- 三個觸發器可以表示三位二進制數,與移位寄存器一樣都是時鐘脈沖相連
移位計數器
- 扭環計數器:K 個觸發器可計 2K 個數
- 環型計數器:K 個觸發器可計 K 個數
題型一:給出一部分波形圖,讓補全輸出信號的波形
- ① 畫輸出波形改變的參照線(之后可以在線上改變輸出形態):
- 看題目中說的器件類型(若有邏輯電路圖就看脈沖那里有沒三角,沒有就是電平觸發,有就是邊沿觸發,然后根據圓圈有無判斷是上升/下降還是高低) →
- 若為觸發器:
- a .題目說明負邊沿/正邊沿,負邊沿 → 沿 CP 下降沿畫線,反之沿上升沿
- b .有邏輯電路圖 → 看器件脈沖輸入端是否有圓圈符號,有 → 下降沿,反之上升沿
- ② 畫輸出波形 Q :
- 看題目中說的器件類型 → 回憶對應功能表 → 確定題目開始初態 → 看參照線畫過的輸入端對應輸入情況 → Q 的取值跟著輸入變化(就看表) → 畫 Q
- 輸出波形是在參照線上變的,中間不會改變狀態,也就是說不用關注輸入端整體怎么變化,只用看輔助線那時刻的輸入,抽象成 0 、1 ,找輸出的情況進行畫
- ③ 畫 Q 的非變量 的輸出波形:跟 Q 波形對稱就行
題型二:給出邏輯電路圖,分析時序/計數電路
- 要的就是三個方程:激勵 + 狀態 + 輸出
- ① 根據邏輯電路圖,寫出輸入信號的方程(即激勵方程),老題型了,記得化簡(照例同或異或不用化,根據奇偶數個 1 來判斷整體取值)
- ② 將輸入信號的方程代入對應器件的次態(特征)方程中(即狀態方程),如果是多片連接的話,還有輸出方程
- ③ 什么器件 → 功能表什么時候是 置 1 的 → 確定輸入信號的取值 → 推出表達式里的變量的取值情況
-
自產自銷類型(輸入端和輸出端連一起了)
- 意思大概是 和 可以直接替換次態方程中的輸入,具體怎么替換看誰連誰
- 原先不連的時候直接根據功能表輸入的取值來找輸出就行
- 比如 J 連了 ,那么次態方程中的 J 就可以用 代替,輸出按照公式和初態來就行
- 記得關注 CLK 邊上有沒圓圈
- 如果式子里保留了 K 之類的沒給出取值的東西,可以根據替換 J 的輸出來確定功能表里對應的輸出
狀態轉移表 + 狀態轉移圖
- 一般這種題都得先把那三個方程寫出來,然后再做表/圖
- 列:CP(脈沖順序) + 現態 PS + 次態 NS +輸出
- 根據開頭的 現態/初態 寫出對應的 次態,將此 次態 作為下次脈沖到來時的 現態 以此類推
- 如果沒有明確說按時間脈沖來就照例全部情況列出來
- 狀態轉移圖:
- 圓圈是狀態( 0 、1 序列),→ 指向的是現態可以到達的次態
-
判斷自啟動和幾進制計數器
- 畫出轉移圖后,看誰沒有在形成的圈里(有效循環),誰就是無效狀態
- 如果圖里無效狀態不是獨立的,而是與圈連接的,那么電路可以自啟動(無效狀態在 CP 作用下能夠進入有效循環)
- 有效循環是幾個狀態構成的就是幾進制
題型:用觸發器構成計數器
- ① 列出真值表(在這里面就是狀態轉移方程),一般會給有效狀態(計數器只用管有效狀態)
- ② 根據真值表求出狀態方程,出來就是次態關于現態的表達式
- ③ 代入對應器件的特征方程中,得到激勵方程
- ④ 根據出來的激勵方程畫邏輯電路圖
- 老題型了
判斷米里型還是摩爾型
- 畫狀態轉移圖 and 表
- 輸入與輸出直接相關的是米里型
- 輸入與輸出不直接相關的是摩爾型
- 不太靠譜的判斷方法:圖里箭頭是 控制 / 輸出 的是米里型,只有個 控制 的是 摩爾型
做輸入序列檢測器
- 只有一個輸入端 X 和一個輸出端 Z
- 檢測的序列有幾位就有幾個狀態,比如檢測 101 就有三個狀態
- 先假設個初態為 A ,當 X 為 1 時,說明序列的第一個是 1 ,記下來,然后進入 B 狀態判斷第二個 X 是不是 0 ;如果 X 為 0 ,則說明第一個是 0 ,保持現態,等下一個 X 進來判斷
- 以此類推
- 檢測到第三個 1 后,就出現問題了,可重疊或者不可重疊,先把前面記錄的兩個給報廢掉,后面分情況,不可重疊呢,這個也就不記錄了,輸出 1 然后直接回初態重新開始檢測
- 如果可重疊,輸出 1 回第二個狀態繼續進行
- 畫表也就是現態 + 次態 / 輸出(里面分 X 取 0 / 1 )
根據波形確定計數器有幾個狀態
- 每個脈沖邊沿變化的時候(要么上升沿要么下降沿)把狀態抽象成序列,看不重復的序列有幾個
狀態編碼
- 一對一法:每個狀態分配一個觸發器
- 計數器法:分配確切數目的觸發器,觸發器輸入的變量形成到的二進制轉換為十進制數是下標
- ① 看狀態表,將等價的狀態情況合并起來
- ② 選擇一對一 / 計數器 分配對應數量的觸發器
- ③ 畫出狀態轉移表
- ④ 根據表寫出狀態方程和輸出方程
- ⑤ 對式子進行對應的變化,實現電路
設計寄存器堆
- 使用 DMUX(數據分配器)將單端口輸入的數據變成多路,存入寄存器堆中,再使用 MUX(數據選擇器)將數據以單路形式讀出
- 其中采用地址輸入譯碼器進行分時復用的選擇
陣列圖
- 一般在 ROM RAM 中出現的題型
- 根據要實現的功能作真值表
- 根據真值表寫出輸出的最小項表達式
- 畫出陣列圖:
- ① 畫橫線:輸入的原變量 + 非變量,每個一條橫線
- ② 畫豎線:一共有多少個輸出變量,就畫對應 2 的次方個豎線,即最小項的總數
- ③ 標明最小項:在與輸入量的橫線交匯的地方,將每個最小項畫對應的圓圈表示出來(在同一條豎線上的變量就是相與)
- ③ 標明輸出有的最小項:根據最小項表達式,輸出里有的就在輸出那條線上的交叉點畫圈(在同一條橫線上的最小項就是加起來)
ROM 容量計算 + 一堆亂七八糟芯片所需片數的計算
- 輸入 n 位,輸出 m 位,所以 ROM 容量為 2 的 n 次方 *( n + m )
- 用需要構成的寄存器容量除以芯片容量就是需要的片數
總結
- 上一篇: uniapp 安卓/ios 录音授权,录
- 下一篇: Ae:Roto 笔刷工具和调整边缘工具