4x4乘法器的Verilog代码

该项目将实施4x4 乘数 使用Verilog HDL。充分 Verilog 的代码 乘法器被提出。 

所使用的技术是移位/相加算法,但不同的功能是使用两相自计时系统,以将乘法时间减少一半。

4x4乘法器的Verilog代码

Verilog 的代码 乘数:

`timescale 1ns / 1ps
// hzgifts.cn FPGA projects, Verilog projects, VHDL projects
// 乘数 4x4 using Shift/Add Algorithm and 2-phase clocking system
// Verilog project: 乘法器的Verilog代码
模组 mult_4x4(
         input 重启,start, 
         input[3:0] A,B, 
         output [7:0] O, output Finish
             );
reg [7:0] O;
线 完;  
线 Phi0,Phi1;// 2 phase clocking
线 m1,m2,m3,m4;
// state machine
reg[3:0] State;
// Accumulator
reg [8:0] ACC; // Accumulator
// logic to create 2 phase clocking when 开始ing
nand u0(m1,start,m2);
buf #20 u1(m2,m1);
buf #10 u2(Phi0,m1);// First phase clocking
not #2 u5(m4,Phi0);
assign m3=~m1; 
and #2 u4(Phi1,m3,m4);// Second phase clocking
assign Finish = (State==9)? 1'b1:1'b0; // Finish Flag
// FSM
always @(posedge Phi0 or posedge Phi1 or posedge 重启)
开始
 if(reset) 开始
 State <= 0; 
 ACC <= 0; 
 O <= 0; 
 结束
 else if((Phi0==1'b1) || (Phi1==1'b1)) 开始 // 2 phase clocking
 if(State==0)
 开始
 ACC[8:4] <= 5'b00000; // 开始 cycle
 ACC[3:0] <= A; // Load A
 State <= 1;
 结束
 else if(State==1 || State == 3 || State ==5 || State ==7) 
                // add/shift State
 开始
 if(ACC[0] == 1'b1) 开始 // add multiplicand
 ACC[8:4] <= {1'b0,ACC[7:4]} + B; 
 State <= State + 1;
 结束
 else
 开始
 ACC <= {1'b0,ACC[8:1]};// shift right
 State <= State + 2;
 结束
 结束
 else if(State==2 || State == 4 || State ==6 || State ==8) 
                // shift State
 开始
 ACC <= {1'b0,ACC[8:1]}; // shift right
 State <= State + 1;
 结束 
 else if(State == 9) 开始
 State <= 0;
 O <= ACC[7:0]; 
 结束
 结束
结束 
 
终端模块
// TestBench
// fpga4student.com FPGA projects, Verilog projects, VHDL projects
// Verilog project: 乘法器的Verilog代码
模组 测试(); //信号 reg 开始,重置; reg[3:0] A,B; //输出 线 [7:0] O; 线 完; //被测设备 mult_4x4 dut(reset,start, A,B,O,完); 初始 开始重启=1; // 重启 #40 开始 = 0;A =14; B= 11; #400 重启 = 0; #40 开始 = 1; //开始 // @(posege Finish); //开始= 0; // $ finish; 结束 终端模块

4x4乘法器的仿真结果:

乘法器的Verilog代码
一旦确定了启动信号,乘法器便开始执行乘法。 通过创建两个相位时钟,它将乘法时间减少了一半。 
结束信号,通知乘法器乘法已经完成并且结果准备好了。
仿真结果验证了乘法器的正确操作,乘法器的输出乘以14乘以11得到154。
推荐的 Verilog projects:
2. FIFO存储器的Verilog代码
3. 用于16位单周期MIPS处理器的Verilog代码
4. Verilog HDL中的可编程数字延迟计时器
5. 用于数字电路中基本逻辑组件的Verilog代码
6. 用于32位无符号除法器的Verilog代码
7. 用于定点矩阵乘法的Verilog代码
8. Verilog HDL中的车牌许可证识别
9. 提前进位乘法器的Verilog代码
10。 微处理器的Verilog代码
11。 4x4乘法器的Verilog代码
12 停车场系统的Verilog代码
13 使用Verilog HDL在FPGA上进行图像处理
14。 如何使用Verilog HDL将文本文件加载到FPGA中
15 交通信号灯控制器的Verilog代码
16。 FPGA上的闹钟的Verilog代码
17。 比较器设计的Verilog代码
18岁 D触发器的Verilog代码
19 Full Adder的Verilog代码
20 带testbench的计数器的Verilog代码
21 16位RISC处理器的Verilog代码
22 用于在FPGA上反跳按钮的Verilog代码
23。 如何为双向/输入端口编写Verilog Testbench
28。 解码器的Verilog代码
29。 复用器的Verilog代码
FPGA Verilog VHDL课程

5条评论:

  1. 我可以为此提供规格和架构吗?...紧急

    回复删除
  2. 使用的技术是移位/相加算法,但不同的功能是使用两相自计时系统,以将乘法时间减少一半。

    回复删除
  3. Kindly check this also: http://www.hzgifts.cn/2016/11/verilog-code-for-carry-look-ahead-multiplier.html

    回复删除
  4. 数字时钟有3个代码,从bcd到十六进制,还有一个用于时钟分频器,因此如何在一个程序中编写这3个代码

    回复删除
  5. 4位Baugh Wooley乘法器Verilog程序

    回复删除

热门FPGA项目