微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 两个赋值块的含义及区别?

两个赋值块的含义及区别?

时间:10-02 整理:3721RD 点击:
为了在滤波器中实现乘累加,其中m0_out到m7_out分别是8个乘法器的输出,a0到a7为8个寄存器,请问一下两种写法运算起来哪里不一样呢?哪种写法正确呢?乘法器的输入是最新的乘数输入m0,乘数从m0到m7依次移动。
写法一:
     always @(posedge clk)
begin
       a0<=m0_out+a1;
a1<=m1_out+a2;
a2<=m2_out+a3;
a3<=m3_out+a4;
a4<=m4_out+a5;
a5<=m5_out+a6;
a6<=m6_out+a7;
a7<=m7_out;
end
写法二:
   always @(posedge clk)
begin
       a0<=m0_out;
a1<=m1_out+a0;
a2<=m2_out+a1;
a3<=m3_out+a2;
a4<=m4_out+a3;
a5<=m5_out+a4;
a6<=m6_out+a5;
a7<=m7_out+a6;
end

我猜你这个8个乘法器是并行关系,  假设只有一路乘法器和寄存器,那该怎么做, 为什么不是下面这样?
always @(posedge clk  or negedge resetn)
   reset部分
else
begin
a0<=m0_out+a0;
a1<=m1_out+a1;
a2<=m2_out+a2;
a3<=m3_out+a3;
a4<=m4_out+a4;
a5<=m5_out+a5;
a6<=m6_out+a6;
a7<=m7_out+a7;
end



   也许和没把整个程序贴上来有关系,乘法器并不是并行的,用来实现是fir滤波器,我希望他实现的是乘法器后端有一个加的输入端口

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top