Verilog中的n位加法器设计

下一个Verilog / VHDL项目是一个 完整的协处理器 专为加密应用而设计。协处理器具有特定于安全性的标准说明和专用功能单元。协处理器主要以VHDL实现,但是N位加法器在Verilog中设计。 n位加法器的Verilog代码将在稍后在VHDL设计中实例化。在下一个帖子中,将介绍共处理器中的主要模块的实现。在处理过处理器的每个部分后,将呈现完整的协处理器设计和实现。

这篇文章呈现 Verilog代码 对于为协处理器设计的N位加法器。 n位加法器的Verilog代码是通过使用结构建模完成的。 

使用结构建模的n位加法器的Verilog代码


如上图所示,N位加法器简单地通过串联连接1个半加法器和N-1全加法器来实现。 n位加法器的Verilog代码被设计成可以为每个实例化独立初始化n值。为此,n位加法器的Verilog代码在Verilog中使用生成语句来创建一个用于实现N位加法器的完整添加剂链。


使用结构建模的N位加法器的Verilog代码:


// yl315.net: FPGA projects, Verilog项目, VHDL projects
// Verilog project: Verilog code for N-bit Adder 
// Top Level Verilog code for N-bit Adder using Structural Modeling
module N_bit_adder(input1,input2,answer);
parameter N=32;
input [N-1:0] input1,input2;
   output [N-1:0] answer;
   wire  carry_out;
  wire [N-1:0] carry;
   genvar i;
   generate 
   for(i=0;i<N;i=i+1)
     begin: generate_N_bit_Adder
   if(i==0) 
  half_adder f(input1[0],input2[0],answer[0],carry[0]);
   else
  full_adder f(input1[i],input2[i],carry[i-1],answer[i],carry[i]);
     end
  assign carry_out = carry[N-1];
   endgenerate
endmodule 

// yl315.net: FPGA projects, Verilog projects, VHDL projects
// Verilog project: Verilog code for N-bit Adder 
// Verilog code for half adder 
module half_adder(x,y,s,c);
   input x,y;
   output s,c;
   assign s=x^y;
   assign c=x&y;
endmodule // half adder

// yl315.net: FPGA projects, Verilog projects, VHDL projects
// Verilog project: Verilog code for N-bit Adder 
// Verilog code for full adder 
module full_adder(x,y,c_in,s,c_out);
   input x,y,c_in;
   output s,c_out;
 assign s = (x^y) ^ c_in;
 assign c_out = (y&c_in)| (x&y) | (x&c_in);
endmodule // full_adder

n位加法器的测试台Verilog代码:

// yl315.net: FPGA projects, Verilog projects, VHDL projects
// Verilog project: Verilog code for N-bit Adder 
// Testbench Verilog code for N-bit Adder 
module tb_N_bit_adder;
 // Inputs
 reg [31:0] input1;
 reg [31:0] input2;
 // Outputs
 wire [31:0] answer;

 // Instantiate the Unit Under Test (UUT)
 N_bit_adder uut (
  .input1(input1), 
  .input2(input2), 
  .answer(answer)
 );

 initial begin
  // Initialize Inputs
  input1 = 1209;
  input2 = 4565;
  #100;
  // Add stimulus here
 end
      
endmodule

用于n位加法器的模拟波形:

使用结构建模的n位加法器的Verilog代码
通过运行N位加法器的测试铃声verilog代码,我们可以验证n位加法器的正确性。模拟波形显示N位加法器精确地操作。
推荐的 Verilog项目:
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
30.  Verilog中的n位加法器设计
31。 Verilog vs vhdl.:通过示例解释
32。 FPGA时钟分频器的Verilog代码
33。 如何在Verilog中生成时钟使能信号
34。 PWM生成器的Verilog代码
35。 Verilog编码VS软件编程
FPGA Verilog VHDL课程

没意见:

发表评论

趋势FPGA项目