FPGA數字IC秋招筆試面試025——【全加器】【全減器】【2022屆秋招】
/***************************************
本文首發於公眾號【FPGA探索者】轉載需保留此宣告
***************************************/
遇到半加器和全加器比較多,第一次遇到半減器和全減器。
先來看看半加器和全加器,再類似分析半減器和全減器。
思路:列真值表,畫卡諾圖,化簡。
先看個全加器的題目(2021屆華為校招,FPGA邏輯崗位):
輸入 A/B,輸出和 S,輸出 C 為進位。
輸入 A = 0,B = 0,0+0 = 0,所以 S = 0,C = 0;
輸入 A = 0,B = 1,0+1 = 1,所以 S = 1,C = 0;
輸入 A = 1,B = 0,1+0 = 1,所以 S = 1,C = 0;
輸入 A = 1,B = 1,1+1 = 10(二進位制加法,進 1),
所以 S = 0,C = 1;
(1)根據真值表編寫
按照半加器和全加器的真值表寫出輸出端的邏輯表示式,對半加器,輸出的進位端是量輸入的“與”,輸出的計算結果是量輸入的異或;對全加器,也按照邏輯表示式做。
當多位數相加時,半加器可用於最低位求和,並給出進位數。第二位的相加有兩個待加數和,還有一個來自前面低位送來的進位數。這三個數相加,得出本位和數(全加和數)和進位數,這種就是“全加”。
真值表:
使用與門、或門和異或門搭建電路:
根據真值表程式設計,門級描述:
直接描述功能,加法直接得到低位的和、高位的進位。【FPGA探索者】
這種方式描述簡單,易於擴充套件,但是底層具體的實現方式比較抽象。
擴充套件,4 位全加器,運算不需要改變,只需要更改位寬:
輸入:被減數 A,減數 B
輸出:差 S,借位 Cout
(1)0 - 0 = 0,不需要借位,所以 S = 0,Cout = 0;
(2)0 - 1 = 1,需要借位,所以 S = 1,Cout = 1;
(3)1 - 1 = 0,不需要借位,所以 S = 0,Cout = 0;
(4)1 - 0 = 0,不需要借位,所以 S = 1,Cout = 0;
透過觀察(或者卡諾圖化簡),可以得出
輸入:被減數 A,減數 B,低位向高位的借位 Cin
輸出:差 S,借位 Cout
這裡需要注意:需要計算的是 A - B - Cin
(1) 0 - 0 - 0 = 0,不需要借位,所以 S = 0,Cout = 0;
(2) 0 - 1 - 0 = 1,需要借位,所以 S = 1,Cout = 1;
(3) 1 - 1 - 0 = 0,不需要借位,所以 S = 0,Cout = 0;
(4) 1 - 0 - 0 = 1,不需要借位,所以 S = 1,Cout = 0;
(5) 0 - 0 - 1 = 1,需要借位,所以 S = 1,Cout = 1;
(6) 0 - 1 - 1 = 0,需要借位,所以 S = 0,Cout = 1;
(7) 1 - 1 - 1 = 1,需要借位,所以 S = 1,Cout = 1;
(8) 1 - 0 - 1 = 0,不需要借位,所以 S = 0,Cout = 0;
對 Cout,不容易觀察其表示式,使用卡諾圖化簡:
【華為2021秋招】FPGA邏輯筆試解析【獨家】【數字IC】【FPGA邏輯】
【華為2021秋招】FPGA邏輯筆試解析-2【修改】
Xilinx FPGA AXI4匯流排(四)——自定義 AXI-Lite 介面的 IP 及原始碼分析
Xilinx FPGA AXI4匯流排(三)——握手機制、通道依賴性及AXI-Lite握手例項
Xilinx FPGA AXI4匯流排(二)用例項介紹 5 個讀寫通道
Xilinx FPGA AXI4匯流排(一)介紹【AXI4】【AXI4-Lite】【AXI-Stream】