Skip to content

Исправление кода в ЛР07 #45

@AndreaLabonair

Description

@AndreaLabonair
module bin2grey (
    input  logic [3:0] bin_i,
    output logic [3:0] grey_o,
);

    assign grey_o = (bin_i >> 1) ^ bin_i;

endmodule

module grey2bin (
    input  logic [3:0] grey_i,
    output logic [3:0] bin_o,
);

    assign bin_o[3] =  grey_i[3];
    assign bin_o[2] = ^grey_i[3:2];
    assign bin_o[1] = ^grey_i[3:1];
    assign bin_o[0] = ^grey_i[3:0];

endmodule

Запятые в шапках модулей не нужны -> syntax error
output logic [3:0] grey_o,
output logic [3:0] bin_o,

module ff2_synchroniser_flag_busy (
    input  logic clkA_i,
    output logic busyA_o,
    input  logic clkB_i,
    input  logic datA_i,
    output logic datB_o
);

    //Clock domain A

    logic       toggleA;
    logic [1:0] syncBusyA;

    always_ff @(posedge clkA_i) toggleA <= toggleA ^ datA_i;
    always_ff @(posedge clkA_i) syncBusyA <= {syncBusyA[0], syncB[2]};

    assign busyA_o = syncBusyA[1] ^ toggleA;

    //Clock domain B

    logic [2:0] syncB;

    always_ff @(posedge clkB_i) syncB <= {syncB[1:0], toggleA};

    assign datB_o = ^syncB[2:1];

endmodule

logic [2:0] syncB; Надо переместить в начало после шапки модуля иначе syncB is used before its declaration

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions