【文章】根據(jù)Verilog代碼畫電路圖(原創(chuàng)精華)
本文為明德?lián)P原創(chuàng)文章,轉(zhuǎn)載請注明出處!
FPGA的設計本質(zhì)是硬件設計,而Verilog是用來描述電路的,所以在學習FPGA的過程中,我們要學會建立電路和Verilog的對應關(guān)系,學會看到電路圖,就能寫出相應的Verilog代碼;看到Verilog代碼,就能畫出相應的電路圖。
一、門及邏輯
FPGA中常用到的門級邏輯有“與門”、“或門”、“反相器(非門)”等。
以下是1位邏輯“與(&& )”、“或( || )”、“非( ~ )”的功能和Verilog代碼及其電路示意圖:

二、運算邏輯
FPGA中常用到的運算邏輯有“加法器”、“減法器”、“乘法器”、“除法器”、“求余器”等。
以下是“加法器”、“減法器”、“乘法器”、“除法器”、“求余器”的功能和Verilog代碼及其電路示意圖:


三、邏輯器件
FPGA中常用到的邏輯器件有“選擇器”、“比較器”、“D觸發(fā)器”等。
以下是“選擇器”、“比較器(下面只對等于(=)比較器進行介紹)”、“D觸發(fā)器(下面只對FPGA中常用到的D觸發(fā)器形式進行介紹)”的功能和Verilog代碼及其電路示意圖:


四、根據(jù)代碼畫原理圖
下圖是一段Verilog的代碼以及對其的分析并畫電路圖:

(一)D觸發(fā)器
該代碼中用到一個D觸發(fā)器的Verilog代碼形式,故需要用到一個D觸發(fā)器:

(二)選擇器
該代碼中用到了四個條件判斷語句(if(),else if()形式)的選擇器的Verilog代碼形式,故需要用到四個選擇器:

從代碼中可以看出:
第一個選擇器的選擇條件s是din_vld,滿足選擇條件的選擇值a等于以下三個選擇器的最終輸出值,另一個不滿足選擇條件的選擇值b等于輸出值c的反饋值(即保持輸出值不變),故第一個選擇器的電路圖如下:

第二個選擇器的選擇條件s是din>=8’d48&&din<8’d58(該形式是比較器和與門合成的形式),滿足選擇條件的選擇值a等于din-4’d48(該形式是減法器的形式),另一個不滿足選擇條件的選擇值b等于第三個選擇器的輸出值或者第四個選擇器的輸出值或者等于0,故第二個選擇器的電路圖如下:

第三個選擇器的選擇條件s是din>=8’d65&&din<8’d71(該形式又是比較器和與門合成的形式),滿足選擇條件的選擇值a等于din-8’d55(該形式是減法器的形式),另一個不滿足選擇條件的選擇值b等于第四個選擇器的輸出值或者等于0,故第三個選擇器的電路圖如下:

第四個選擇器的選擇條件s是din>=8’d97&&din<8’d123(該形式又是比較器和與門合成的形式),滿足選擇條件的選擇值a等于din-8’d87(該形式是減法器的形式),另一個不滿足選擇條件的選擇值b等于0,故第四個選擇器的電路圖如下:

綜上所述,可以將第四個選擇器的輸出端連接到第三個選擇器的選擇值b端,將第三個選擇器的輸出端連接到第二個選擇器的選擇值b端,將第二個選擇器的輸出端連接到第一個選擇器的選擇值a端。因此最終該Verilog代碼的電路圖可畫成如下所示:

以上就是Verilog代碼和電路圖的相互關(guān)系,學習更多FPGA知識與技巧!