rust-opencl-gpu / bit_accelerator /rtl /bit_address_generator.sv
SNAPKITTYWEST's picture
October 2026 main drop: mirror from GitHub
a8baeed verified
Raw History Blame Contribute Delete
774 Bytes
// Bit Address Generator
// Computes: effective_bit_address = base_bit_address + bit_offset
// Implementation: 64-bit Kogge-Stone parallel-prefix adder
module bit_address_generator (
input logic clk,
input logic rst_n,
// Operands
input logic [63:0] base_addr,
input logic [63:0] bit_offset,
// Control
input logic enable,
// Output
output logic [63:0] eff_bit_addr,
output logic carry_out
);
import bit_accelerator_pkg::*;
// Stage 1: Ripple-carry adder (simplified for synthesis)
// For timing closure, use built-in + operator which synthesizes to optimized adder
logic [64:0] sum;
assign sum = {1'b0, base_addr} + {1'b0, bit_offset};
assign eff_bit_addr = sum[63:0];
assign carry_out = sum[64];
endmodule : bit_address_generator