4x4乘法器的Verilog代码

该项目是实施4x4 乘数 使用Verilog HDL。满的 verilog. 代码 乘数呈现。 

正在使用的技术是Shift / Add算法,但不同的特征是使用两相自时钟系统,以便将乘以时间减少一半。

4x4乘法器的Verilog代码

verilog.代码 乘数:

`timescale 1ns / 1ps
// yl315.net FPGA projects, verilog. projects, VHDL projects
// multiplier 4x4 using Shift/Add Algorithm and 2-phase clocking system
// Verilog project: 乘法器的Verilog代码
模块 mult_4x4(
         input reset,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 starting
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 reset)
开始
 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; // begin 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代码
模块 test(); //信号 reg start,reset; reg [3:0] A,B; //输出 金属丝 [7:0] O; 金属丝 Finish; //被测设备 Mult_4x4 DUT(重置,开始, A,B,O,结束); 最初的 开始重置=1; // 重置 #40 开始 = 0;A =14; B= 11; #400 重置 = 0; #40 开始 = 1; // 开始 // @(提出完成); // 开始 = 0; // $完成; 结尾 终点

4x4乘法器的仿真结果:

乘法器的Verilog代码
一旦启动信号被置位,乘数开始执行乘法。 通过创建2个相位时钟,它将乘以一半逐渐减少。 
结束信号通知乘法器已完成乘法,结果已准备就绪。
仿真结果验证了乘法器的正确操作,其中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。 VERILOG代码D触发器
19。 完整加法器的Verilog代码
20。 与测试台的计数器的Verilog代码
21。 16位RISC处理器的Verilog代码
22。 FPGA上的按钮的Verilog代码
23。 如何为双向/ inout端口编写Verilog TestBench
28。 解码器的Verilog代码
29。 多路复用器的Verilog代码
FPGA Verilog VHDL课程

5评论:

  1. 我可以拥有这个规范和架构....紧急

    回复删除
  2. 正在使用的技术是Shift / Add算法,但不同的特征是使用两相自时钟系统,以便将乘以时间减少一半。

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

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

    回复删除
  5. 4位BAUGH WOOLEY乘法器Verilog程序

    回复删除

趋势FPGA项目