
Does anyone know what will be the hardware synthesis tool will make ?
Is it going to be encoder , or multiple adders or full of mux ??
---------------------------- Verilog Code ------------------
module count1n0 (
input clk,
input rstn,
input [9:0] data,
output reg [3:0] num_of_one,
output reg [3:0] num_of_zero
);
always @(*) begin
num_of_one = 4'b0;
num_of_zero = 4'b0;
if(!data[0])
num_of_zero = num_of_zero + 1;
else
num_of_one = num_of_one + 1 ;
if(!data[1])
num_of_zero = num_of_zero + 1;
else
num_of_one = num_of_one +1 ;
if(!data[2])
num_of_zero = num_of_zero + 1;
else
num_of_one = num_of_one +1 ;
if(!data[3])
num_of_zero = num_of_zero + 1;
else
num_of_one = num_of_one +1 ;
if(!data[4])
num_of_zero = num_of_zero + 1;
else
num_of_one = num_of_one +1 ;
if(!data[5])
num_of_zero = num_of_zero + 1;
else
num_of_one = num_of_one +1 ;
if(!data[6])
num_of_zero = num_of_zero + 1;
else
num_of_one = num_of_one +1 ;
if(!data[7])
num_of_zero = num_of_zero + 1;
else
num_of_one = num_of_one +1 ;
if(!data[8])
num_of_zero = num_of_zero + 1;
else
num_of_one = num_of_one +1 ;
if(!data[9])
num_of_zero = num_of_zero + 1;
else
num_of_one = num_of_one +1 ;
end
endmodule
------------------------------------------------------
------------------- Verilog Testbench ----------------
module tb;
reg clk;
reg rstn;
reg [9:0] count;
wire [3:0] one;
wire [3:0] zero;
initial begin
clk =0;
rstn =0;
count =0;
end
initial begin
#100;
rstn = 1 ;
#1000;
$finish;
end
initial $monitor("data = %b, num of zero = %d, num_of_one = %d ", count , zero, one);
always @(negedge clk) begin
count = count + 1297;
end
always #5 clk = ~clk ;
count1n0 dut (
.clk(clk),
.rstn(rstn),
.data(count),
.num_of_one(one),
.num_of_zero(zero)
);
initial begin
$recordfile("test.trn");
$recordvars();
end
endmodule
----------------------------------------------------
-------------------Simulation Result - -------------
data = 0000000000, num of zero = 10, num_of_one = 0
data = 0100010001, num of zero = 7, num_of_one = 3
data = 1000100010, num of zero = 7, num_of_one = 3
data = 1100110011, num of zero = 4, num_of_one = 6
data = 0001000100, num of zero = 8, num_of_one = 2
data = 0101010101, num of zero = 5, num_of_one = 5
data = 1001100110, num of zero = 5, num_of_one = 5
data = 1101110111, num of zero = 2, num_of_one = 8
data = 0010001000, num of zero = 8, num_of_one = 2
data = 0110011001, num of zero = 5, num_of_one = 5
data = 1010101010, num of zero = 5, num_of_one = 5
data = 1110111011, num of zero = 2, num_of_one = 8
data = 0011001100, num of zero = 6, num_of_one = 4
data = 0111011101, num of zero = 3, num_of_one = 7
data = 1011101110, num of zero = 3, num_of_one = 7
data = 1111111111, num of zero = 0, num_of_one = 10
data = 0100010000, num of zero = 8, num_of_one = 2
data = 1000100001, num of zero = 7, num_of_one = 3
data = 1100110010, num of zero = 5, num_of_one = 5
data = 0001000011, num of zero = 7, num_of_one = 3
data = 0101010100, num of zero = 6, num_of_one = 4
data = 1001100101, num of zero = 5, num_of_one = 5
data = 1101110110, num of zero = 3, num_of_one = 7
data = 0010000111, num of zero = 6, num_of_one = 4
data = 0110011000, num of zero = 6, num_of_one = 4
data = 1010101001, num of zero = 5, num_of_one = 5
data = 1110111010, num of zero = 3, num_of_one = 7
data = 0011001011, num of zero = 5, num_of_one = 5
data = 0111011100, num of zero = 4, num_of_one = 6
data = 1011101101, num of zero = 3, num_of_one = 7
data = 1111111110, num of zero = 1, num_of_one = 9
data = 0100001111, num of zero = 5, num_of_one = 5
data = 1000100000, num of zero = 8, num_of_one = 2
data = 1100110001, num of zero = 5, num_of_one = 5
data = 0001000010, num of zero = 8, num_of_one = 2
data = 0101010011, num of zero = 5, num_of_one = 5
data = 1001100100, num of zero = 6, num_of_one = 4
data = 1101110101, num of zero = 3, num_of_one = 7
data = 0010000110, num of zero = 7, num_of_one = 3
data = 0110010111, num of zero = 4, num_of_one = 6
data = 1010101000, num of zero = 6, num_of_one = 4
data = 1110111001, num of zero = 3, num_of_one = 7
data = 0011001010, num of zero = 6, num_of_one = 4
data = 0111011011, num of zero = 3, num_of_one = 7
data = 1011101100, num of zero = 4, num_of_one = 6
data = 1111111101, num of zero = 1, num_of_one = 9
data = 0100001110, num of zero = 6, num_of_one = 4
data = 1000011111, num of zero = 4, num_of_one = 6
data = 1100110000, num of zero = 6, num_of_one = 4
data = 0001000001, num of zero = 8, num_of_one = 2
data = 0101010010, num of zero = 6, num_of_one = 4
data = 1001100011, num of zero = 5, num_of_one = 5
data = 1101110100, num of zero = 4, num_of_one = 6