【连载】 FPGA Verilog HDL 系列实例半加器与全加器
【連載】 FPGA Verilog HDL 系列實例
Verilog HDL 之 半加器與全加器
一、原理
算術(shù)運(yùn)算式數(shù)值系統(tǒng)的基本功能,更是計算機(jī)中不可缺少的組成單元。
1、半加器
半加法和全加法是算術(shù)運(yùn)算電路中的基本單元,它們是完成1位二進(jìn)制相加的一種組合邏輯電路。一位加法器的真值表見表1.1;由表中可以看見,這種加法沒有考慮低位來的進(jìn)位,所以稱為半加。半加器就是實現(xiàn)表1.1中邏輯關(guān)系的電路。被加數(shù)A加數(shù)B和數(shù)S進(jìn)位C0000011010101101
表1.1 一位半加法器真值表
2、全加器
全加器能進(jìn)行加數(shù)、被加數(shù)和低位來的進(jìn)位信號相加,并根據(jù)求和結(jié)果給出該位的進(jìn)位信號。根據(jù)它的功能,可以列出它的真值表,如表1.2所示。
表1.2 一位全加法真值表
3、半減法和全減法
半減法和全減法與加法器一樣是算術(shù)運(yùn)算電路中的基本單元。半減器和全減器的設(shè)計方法和設(shè)計加法器相同,但是實際上,為了簡化系統(tǒng)結(jié)構(gòu),通常不設(shè)計減法器,而是將減法運(yùn)算變?yōu)榧臃ㄟ\(yùn)算來出來,使運(yùn)算器即能實現(xiàn)加法器運(yùn)算,又能實現(xiàn)減法器運(yùn)算。一般采用加補(bǔ)碼的方法代替減法運(yùn)算。
二、實現(xiàn)
在設(shè)計文件中輸入Verilog代碼
1 `timescale 1 ns / 1 ps
2
3 module sum ( A ,Co ,B ,S ,Ci );
4
5 input A ;
6 wire A ;
7 input B ;
8 wire B ;
9 input Ci ;
10 wire Ci ;
11
12 output Co ;
13 reg Co ;
14 output S ;
15 reg S ;
16
17 always @ ( A or B or Ci)
18 begin
19 if ( A== 0 && B == 0 && Ci == 0 )
20 begin
21 S <= 0;
22 Co <= 0;
23 end
24 else if ( A== 1 && B == 0 && Ci == 0 )
25 begin
26 S <= 1;
27 Co <= 0;
28 end
29 else if ( A== 0 && B == 1 && Ci == 0 )
30 begin
31 S <= 1;
32 Co <= 0;
33 end
34 else if ( A==1 && B == 1 && Ci == 0 )
35 begin
36 S <= 0;
37 Co <= 1;
38 end
39 else if ( A== 0 && B == 0 && Ci == 1 )
40 begin
41 S <= 1;
42 Co <= 0;
43 end
44 else if ( A== 1 && B == 0 && Ci == 1 )
45 begin
46 S <= 0;
47 Co <= 1;
48 end
49 else if ( A== 0 && B == 1 && Ci == 1 )
50 begin
51 S <= 0;
52 Co <= 1;
53 end
54 else
55 begin
56 S <= 1;
57 Co <= 1;
58 end
59 end
60
61 endmodule
總結(jié)
以上是生活随笔為你收集整理的【连载】 FPGA Verilog HDL 系列实例半加器与全加器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中使用ZADD方法报错Att
- 下一篇: $lookup做关联表查询