8位串行进位加法器
? ? 串行進位加法器由一位全加器級聯而成,結構簡單,但延時很長,延時主要是進位信號級連造成的。
在最壞情況下,進位必須從最低有效全加器傳到最高有效全加器。
? ?一位全加器的公式為:?SUM=X⊕Y⊕CIN ? ? ? ? COUT=X·Y+ X·CIN+Y·CIN
? ?在Verilog里可以調用門電路的原語實現。
? ?下面為8位串行進位加法器的Verilog代碼
module add_serial(sum,cout,a,b,cin); //8位串行加法器input cin;
input [7:0] a,b;
output cout;
output [7:0] sum;
wire cin1,cin2,cin3,cin4,cin5,cin6,cin7;
full_add1 f0(a[0],b[0],cin,sum[0],cin1);//調用1位全加器
full_add1 f1(a[1],b[1],cin1,sum[1],cin2);//端口信號順序要與full_add1一致
full_add1 f2(a[2],b[2],cin2,sum[2],cin3);
full_add1 f3(a[3],b[3],cin3,sum[3],cin4);
full_add1 f4(a[4],b[4],cin4,sum[4],cin5);
full_add1 f5(a[5],b[5],cin5,sum[5],cin6);
full_add1 f6(a[6],b[6],cin6,sum[6],cin7);
full_add1 f7(a[7],b[7],cin7,sum[7],cout);
endmodule
module full_add1(a,b,cin,sum,cout);
input a,b,cin;
output sum,cout;
wire s1,c1,c2,c3;
xor (s1,a,b),(sum,s1,cin);//調用異或門
and (c1,a,b),(c2,a,cin),(c3,b,cin);//調用與門
or (cout,c1,c2,c3);//調用3輸入或門
endmodule
轉載于:https://www.cnblogs.com/haigege/archive/2011/09/28/2194769.html
總結
- 上一篇: spring.net 中配置文件分开储存
- 下一篇: return另外一个用法