Keresés

Új hozzászólás Aktív témák

  • Reggie0

    félisten

    válasz CPT.Pirk #25914 üzenetére

    Igen, ezt en magam irtam, de ez verilogban van:
    Ha modositod a BIN_SIZE vagz BCD_SIZE parametert, ugyelni kell arra, hogy 2 hatvanya legyen.

    module bin2bcd(in,out);
    parameter BIN_SIZE=4;
    parameter BCD_SIZE=8;
    input [BIN_SIZE-1:0] in;
    output [BCD_SIZE-1:0] out;

    genvar i,j;
    generate
    for(i=0;i<BIN_SIZE;i=i+1) begin : ITER
    wire [BIN_SIZE+BCD_SIZE-1:0] _in;
    wire [BIN_SIZE+BCD_SIZE-1:0] _out;
    wire [BIN_SIZE+BCD_SIZE-1:0] _im;
    for(j=0;j<BCD_SIZE/4;j=j+1) begin : ADDER
    assign _im[BIN_SIZE+3+4*j:BIN_SIZE+4*j] = (_in[BIN_SIZE+3+4*j:BIN_SIZE+4*j]>4'h4) ? _in[BIN_SIZE+3+4*j:BIN_SIZE+4*j] + 4'h3 : _in[BIN_SIZE+3+4*j:BIN_SIZE+4*j];
    end
    assign _im[BIN_SIZE-1:0] = _in[BIN_SIZE-1:0];
    assign _out=_im<<1;
    if (i>0) assign _in=ITER[i-1]._out;
    end
    assign ITER[0]._in={{BIN_SIZE*1'b0},{in}};
    assign out=ITER[BIN_SIZE-1]._out[BIN_SIZE+BCD_SIZE-1:BIN_SIZE];
    endgenerate

    endmodule

Új hozzászólás Aktív témák