当前位置:
文档之家› 实验7 移位相加硬件乘法器设计
实验7 移位相加硬件乘法器设计
乘法器的设计
乘法器是基本运算之一,广泛用在数字信号处 理中,滤波器中乘法运算必不可少。 在我们用语言设计电路时,初学时在设计乘法 运算时通常很简单的用*操作,但是这种方法 谈不上设计乘法器,其最终的硬件实现要根据 综合器综合的结果,好的综合器可以综合出想 要的结果,但是实际上这种粗放的设计通常得 到的都是劣等的乘法运算,无法满足对乘法速 率的要求。 在滤波电路中要求数据串行进入接着进行大量 的乘法运算,当所设计的乘法器的速度小于数 据进入的速度的时候就会导致出错。
一位乘法器设计,A的每一位均需和B的每一位相 乘
• A的某一位用8位移位寄存器用7个时钟串行输出
always@(posedge clk or posedge load) begin if(load) reg8<=A; else reg8[6:0]<=reg8[7:1]; end assign qb=reg8[0];
• A的某一位和B中的每一位相乘,for循环语句
for(i=0;i<=7;i=i+4'b1) dout[i]<=B[i]&abin;
循环语句(for语句)
for语句的语法格式为
for (循环初始值设置表达式; 循环控制条件表达式;循 环控制变量增值表达式)
begin 循环体语句结构; end
“循环控制变量增值表达式”的值如果不随循环而改 变,或导致循环次数过大,对于综合来说都将导致 顶层设计的原理图和仿真波形;
移位相加乘法器_组合电路
移位相加乘法器_组合电路
三目运算符:r=s?t:u // ?: 是一个三目条件运算符, s,t,u是操作数,语句意思:当s为真时,将t赋值给r, 否则,将u赋值给r
移位相加乘法器_组合电路
移位相加乘法器-加法树式
移位相加乘法器-加法树式
移位相加乘法器-时序电路
根据乘法器的运算规律,得知:
移位相加乘法器-时序电路
移位相加乘法器-时序电路
基于时序电路的移位相加乘法器8位移位寄存器
基于时序电路的移位相加乘法器1位乘法器
基于时序电路的移位相加乘法器8位加法器
基于时序电路的移位相加乘法器16位移位寄存器
提高要求-控制器设计
移位相加乘法器-时序电路
实验报告
要求:
写出基于时序的8位硬件乘法器的设计原理; 在关键语句后面注释出其表达的含义; 每个模块的代码和仿真波形; 顶层设计的原理图和仿真波形; 硬件验证过程。
乘法器设计-乘号
乘法器设计-乘号
移位相加乘法器_组合电路
循环语句(for语句)
for语句的语法格式为
for (循环初始值设置表达式; 循环控制条件表达式;循 环控制变量增值表达式)
begin 循环体语句结构; end
“循环控制变量增值表达式”的值如果不随循环而改 变,或导致循环次数过大,对于综合来说都将导致 设计失败。
移位相加乘法器-时序电路
根据乘法器的运算规律,得知:
移位相加_16位移位寄存器
• 高位依次左移意味着低位对于高位依次右移 • A[i-1]*B的积与A[i]*B的积相比,右移一位。
reg16[6:0]<=reg16[7:1]; q[15:7]<=d[8:0] 移位相加_8位二进制加法器
A[i-1]*B+ A[i]*B (对 A[i-1]*B来说,右移1位相加A[i]*B ) d[8:0]<=q[15:8]+B[7:0]