数字系统设计 (Verilog)——简单的纯组合逻辑模块
深圳大学信息工程学院
本章提要加法器 乘法器 比较器 多路器 总线和总线操作 流水线设计技术深圳大学信息工程学院
加法器Ai Bi C i-1 S i 0 0 0 0 Si =1 Ci 1 真 0 0 1 1 & 0 1 0 1 Ci 值 0 1 1 0 & ≥1 1 0 0 1 & 表 1 0 1 0 1 1 0 0 表达式: 1 1 1 1 Si Ai BiCi 1 Ai BiCi 1 Ai BiCi 1 Ai BiCi 1 Ai Bi Ci 1Ci Ai BiCi 1 Ai BiCi 1 Ai BiCi 1 Ai BiCi 1
Ai Bi
=1
Ci 0 0 0 1 0 1 1 1
Ai Bi Bi Ci-1 Ai Ci-1
深圳大学信息工程学院
用一位全加器组成四位全加器module FullAdder (A, B, Cin, SUM, Cout); input A, B, Cin; output SUM, Cout; assign SUM = A ^ B ^ Cin; assign Cout = (A & B) | (A & Cin) | (B & Cin); endmodule
用一位全加器组成四位全加器module ADDER4BIT ( Ain, Bin, SUM, OVF); input [3:0] Ain, Bin; output [3:0] SUM; wire [2:0] CY; outputOVF; FullAdder U0 (Ain[0], Bin[0], 0, SUM[0], CY[0]); FullAdder U1 (Ain[1], Bin[1], CY[0], SUM[1], CY[1]); FullAdder U2 (Ain[2], Bin[2], CY[1], SUM[2], CY[2]); FullAdder U3 (Ain[3], Bin[3], CY[2], SUM[3], OVF); endmodule
加法器module add_4(x,y,sum,c); input [3:0] x,y; output[3:0] sum; 拼接 output c; assign {c,sum}=x+y; endmodule
加法器 多位加法器
串行进位加法器 超前进位加法器 pipelined加法器S2S1S0
例:四位串行进位加法器CS3
si c i c i 1
si c i c i 1
si c i c i 1
si c i c i 1
A 3 B3
A 2 B2
A1 B1
A0
B0
结构简单,加数、被加数并行输入,和数并行输出;特点 各位全加器间的进位需串行传递,速度较慢。
加法器例:四位超前进位加法器S3
各位的进位输出信号只 与两个相加数有关,而与 低位进位信号无关。S1S0
S2
C
si c i c i 1进位 电路
si c i c i 1进位 电路
si c i c i 1
si c i c i 1
进位 电路
A3
B3
A 2 B2
A1
B1
A 0 B0
1-1-1-1 MASH实 现电路
深圳大学信息工程学院
Pipelined 加法器
乘法器分类: 并行乘法器 移位相加乘法器 查找表乘法器 加法树乘法器
深圳大学信息工程学院
乘法器1)并行乘法器 module mult(x,y,product) ; input[3:0] x , y ; output[7:0] product ; assign product = x * y ; endmodule并行乘法器可以看作是纯 组合逻辑电路,依靠组合 逻辑实现两数相乘,这种 方法能在输入数据改变时 立即得到相乘结果,延时 很短,但是耗用的资源随 操作数位数的增加而迅速 变多。并行乘法器实现代 码非常简短,适用于器件 内有嵌入式硬件乘法器的 情况。13
2)移位相加乘法器
Top Modulemodule Mult2(DataA,LA,DataB,LB,clk,reset,start,p,Done); input [7:0] DataA,DataB; input LA,LB,clk,reset,start; output [15:0] p; output Done; wire EA,EB,EP,ER,psel,qb,zb; wire [15:0] qa,sum; multshift_cntrl f0(.clock(clk),.reset(reset),.s(s
tart),.z(zb),.b0(qb),.ea(EA),.eb(EB), .ep(EP),.psel(psel),.done(Done)); shifta f1(.r(DataA),.l(LA),.e(EA),.clk(clk),.q(qa)); shiftb f2(.r(DataB),.l(LB),.e(EB),.clk(clk),.q0(qb),.z(zb)); sum f3(.a(qa),.p(p),.psel(psel),.sum(sum)); reg16 f4(.r(sum),.clk(clk),.rst(reset),.e(EP),.q(p)); endmodule 深圳大学信息工程学院
2)移位相加乘法器在不使用嵌入式硬件乘法器的情况下,移位 相加乘法器相比于并行乘法器更节省资源, 这随操作数位数的增加而越发明显。而其缺 点则在于,由于需要进行逐步移位,因而需 要一定的时间来完成两数相乘操作。
深圳大学信息工程学院