集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1960|回复: 2

verilog8位乘法器的例子

[复制链接]
老怪甲 该用户已被删除
老怪甲 发表于 2010-5-21 14:32:14 | 显示全部楼层 |阅读模式
verilog8位乘法器的例子

module mul_ser (clk, x, a, out); //----> Interface
input     clk;
input [7:0] x, a;
output [15:0] out;
reg  [15:0] y;

reg [1:0] state;
initial state=0;
always @(posedge clk) //-> Multiplier in behavioral style
begin : States
  parameter s0=0, s1=1, s2=2;
  reg [2:0] count;
//  reg [1:0] state;
  reg [15:0] p, t;    // Double bit width
  reg [7:0] a_reg;
  case (state)
   s0 : begin     // Initialization step
    a_reg <= a;
    state <= s1;
    count = 0;
    p <= 0;       // Product register reset
    t <= {{8{x[7]}},x}; // Set temporary shift register
   end                      // to x
   s1 : begin     // Processing step
    if (count == 7)  // Multiplication ready
     state <= s2;
    else     // Note that MaxPlusII does not does
     begin   // not allow variable bit selects,
     if (a_reg[0] == 1) // see (LRM Sec. 4.2.1)
      p <= p + t;   // Add 2^k
     a_reg <= a_reg >> 1;// Use LSB for the bit select
     t <= t << 1;
     count = count + 1;
     state <= s1;
    end
   end
   s2 : begin    // Output of result to y and
    y <= p;    // start next multiplication
    state <= s0;
   end
  endcase

end
  assign out=y;
endmodule
weibode01 发表于 2010-11-9 11:13:33 | 显示全部楼层
这个东西好多问乘法器的同学们都可以过来看一下
lcy1991 发表于 2012-2-19 15:39:02 | 显示全部楼层
不是很懂哎
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-6-25 03:48 , Processed in 0.062952 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表