|
楼主 |
发表于 2021-9-5 19:59:03
|
显示全部楼层
对应的verilog文件内容如下:
module Buffer(
input clock,
input reset,
output io_enq_ready,
input io_enq_valid,
input [3:0] io_enq_bits,
input io_deq_ready,
output io_deq_valid,
output [3:0] io_deq_bits
);
reg fullReg; // @[BubbleFifo.scala 7:26]
reg [3:0] dataReq; // @[BubbleFifo.scala 8:22]
wire _GEN_1 = io_enq_valid | fullReg; // @[BubbleFifo.scala 14:26]
assign io_enq_ready = ~fullReg; // @[BubbleFifo.scala 21:18]
assign io_deq_valid = fullReg; // @[BubbleFifo.scala 22:18]
assign io_deq_bits = dataReq; // @[BubbleFifo.scala 23:17]
always @(posedge clock) begin
if (reset) begin
fullReg <= 1'h0;
end else if (fullReg) begin
if (io_deq_ready) begin
fullReg <= 1'h0;
end
end else begin
fullReg <= _GEN_1;
end
if (!(fullReg)) begin
if (io_enq_valid) begin
dataReq <= io_enq_bits;
end
end
end
endmodule
module BubbleFifo(
input clock,
input reset,
output io_enq_ready,
input io_enq_valid,
input [3:0] io_enq_bits,
input io_deq_ready,
output io_deq_valid,
output [3:0] io_deq_bits
);
wire Buffer_clock; // @[BubbleFifo.scala 25:49]
wire Buffer_reset; // @[BubbleFifo.scala 25:49]
wire Buffer_io_enq_ready; // @[BubbleFifo.scala 25:49]
wire Buffer_io_enq_valid; // @[BubbleFifo.scala 25:49]
wire [3:0] Buffer_io_enq_bits; // @[BubbleFifo.scala 25:49]
wire Buffer_io_deq_ready; // @[BubbleFifo.scala 25:49]
wire Buffer_io_deq_valid; // @[BubbleFifo.scala 25:49]
wire [3:0] Buffer_io_deq_bits; // @[BubbleFifo.scala 25:49]
wire Buffer_1_clock; // @[BubbleFifo.scala 25:49]
wire Buffer_1_reset; // @[BubbleFifo.scala 25:49]
wire Buffer_1_io_enq_ready; // @[BubbleFifo.scala 25:49]
wire Buffer_1_io_enq_valid; // @[BubbleFifo.scala 25:49]
wire [3:0] Buffer_1_io_enq_bits; // @[BubbleFifo.scala 25:49]
wire Buffer_1_io_deq_ready; // @[BubbleFifo.scala 25:49]
wire Buffer_1_io_deq_valid; // @[BubbleFifo.scala 25:49]
wire [3:0] Buffer_1_io_deq_bits; // @[BubbleFifo.scala 25:49]
wire Buffer_2_clock; // @[BubbleFifo.scala 25:49]
wire Buffer_2_reset; // @[BubbleFifo.scala 25:49]
wire Buffer_2_io_enq_ready; // @[BubbleFifo.scala 25:49]
wire Buffer_2_io_enq_valid; // @[BubbleFifo.scala 25:49]
wire [3:0] Buffer_2_io_enq_bits; // @[BubbleFifo.scala 25:49]
wire Buffer_2_io_deq_ready; // @[BubbleFifo.scala 25:49]
wire Buffer_2_io_deq_valid; // @[BubbleFifo.scala 25:49]
wire [3:0] Buffer_2_io_deq_bits; // @[BubbleFifo.scala 25:49]
wire Buffer_3_clock; // @[BubbleFifo.scala 25:49]
wire Buffer_3_reset; // @[BubbleFifo.scala 25:49]
wire Buffer_3_io_enq_ready; // @[BubbleFifo.scala 25:49]
wire Buffer_3_io_enq_valid; // @[BubbleFifo.scala 25:49]
wire [3:0] Buffer_3_io_enq_bits; // @[BubbleFifo.scala 25:49]
wire Buffer_3_io_deq_ready; // @[BubbleFifo.scala 25:49]
wire Buffer_3_io_deq_valid; // @[BubbleFifo.scala 25:49]
wire [3:0] Buffer_3_io_deq_bits; // @[BubbleFifo.scala 25:49]
wire Buffer_4_clock; // @[BubbleFifo.scala 25:49]
wire Buffer_4_reset; // @[BubbleFifo.scala 25:49]
wire Buffer_4_io_enq_ready; // @[BubbleFifo.scala 25:49]
wire Buffer_4_io_enq_valid; // @[BubbleFifo.scala 25:49]
wire [3:0] Buffer_4_io_enq_bits; // @[BubbleFifo.scala 25:49]
wire Buffer_4_io_deq_ready; // @[BubbleFifo.scala 25:49]
wire Buffer_4_io_deq_valid; // @[BubbleFifo.scala 25:49]
wire [3:0] Buffer_4_io_deq_bits; // @[BubbleFifo.scala 25:49]
Buffer Buffer ( // @[BubbleFifo.scala 25:49]
.clock(Buffer_clock),
.reset(Buffer_reset),
.io_enq_ready(Buffer_io_enq_ready),
.io_enq_valid(Buffer_io_enq_valid),
.io_enq_bits(Buffer_io_enq_bits),
.io_deq_ready(Buffer_io_deq_ready),
.io_deq_valid(Buffer_io_deq_valid),
.io_deq_bits(Buffer_io_deq_bits)
);
Buffer Buffer_1 ( // @[BubbleFifo.scala 25:49]
.clock(Buffer_1_clock),
.reset(Buffer_1_reset),
.io_enq_ready(Buffer_1_io_enq_ready),
.io_enq_valid(Buffer_1_io_enq_valid),
.io_enq_bits(Buffer_1_io_enq_bits),
.io_deq_ready(Buffer_1_io_deq_ready),
.io_deq_valid(Buffer_1_io_deq_valid),
.io_deq_bits(Buffer_1_io_deq_bits)
);
Buffer Buffer_2 ( // @[BubbleFifo.scala 25:49]
.clock(Buffer_2_clock),
.reset(Buffer_2_reset),
.io_enq_ready(Buffer_2_io_enq_ready),
.io_enq_valid(Buffer_2_io_enq_valid),
.io_enq_bits(Buffer_2_io_enq_bits),
.io_deq_ready(Buffer_2_io_deq_ready),
.io_deq_valid(Buffer_2_io_deq_valid),
.io_deq_bits(Buffer_2_io_deq_bits)
);
Buffer Buffer_3 ( // @[BubbleFifo.scala 25:49]
.clock(Buffer_3_clock),
.reset(Buffer_3_reset),
.io_enq_ready(Buffer_3_io_enq_ready),
.io_enq_valid(Buffer_3_io_enq_valid),
.io_enq_bits(Buffer_3_io_enq_bits),
.io_deq_ready(Buffer_3_io_deq_ready),
.io_deq_valid(Buffer_3_io_deq_valid),
.io_deq_bits(Buffer_3_io_deq_bits)
);
Buffer Buffer_4 ( // @[BubbleFifo.scala 25:49]
.clock(Buffer_4_clock),
.reset(Buffer_4_reset),
.io_enq_ready(Buffer_4_io_enq_ready),
.io_enq_valid(Buffer_4_io_enq_valid),
.io_enq_bits(Buffer_4_io_enq_bits),
.io_deq_ready(Buffer_4_io_deq_ready),
.io_deq_valid(Buffer_4_io_deq_valid),
.io_deq_bits(Buffer_4_io_deq_bits)
);
assign io_enq_ready = Buffer_io_enq_ready; // @[BubbleFifo.scala 41:10]
assign io_deq_valid = Buffer_4_io_deq_valid; // @[BubbleFifo.scala 49:10]
assign io_deq_bits = Buffer_4_io_deq_bits; // @[BubbleFifo.scala 49:10]
assign Buffer_clock = clock;
assign Buffer_reset = reset;
assign Buffer_io_enq_valid = io_enq_valid; // @[BubbleFifo.scala 41:10]
assign Buffer_io_enq_bits = io_enq_bits; // @[BubbleFifo.scala 41:10]
assign Buffer_io_deq_ready = Buffer_1_io_enq_ready; // @[BubbleFifo.scala 27:25]
assign Buffer_1_clock = clock;
assign Buffer_1_reset = reset;
assign Buffer_1_io_enq_valid = Buffer_io_deq_valid; // @[BubbleFifo.scala 27:25]
assign Buffer_1_io_enq_bits = Buffer_io_deq_bits; // @[BubbleFifo.scala 27:25]
assign Buffer_1_io_deq_ready = Buffer_2_io_enq_ready; // @[BubbleFifo.scala 27:25]
assign Buffer_2_clock = clock;
assign Buffer_2_reset = reset;
assign Buffer_2_io_enq_valid = Buffer_1_io_deq_valid; // @[BubbleFifo.scala 27:25]
assign Buffer_2_io_enq_bits = Buffer_1_io_deq_bits; // @[BubbleFifo.scala 27:25]
assign Buffer_2_io_deq_ready = Buffer_3_io_enq_ready; // @[BubbleFifo.scala 27:25]
assign Buffer_3_clock = clock;
assign Buffer_3_reset = reset;
assign Buffer_3_io_enq_valid = Buffer_2_io_deq_valid; // @[BubbleFifo.scala 27:25]
assign Buffer_3_io_enq_bits = Buffer_2_io_deq_bits; // @[BubbleFifo.scala 27:25]
assign Buffer_3_io_deq_ready = Buffer_4_io_enq_ready; // @[BubbleFifo.scala 27:25]
assign Buffer_4_clock = clock;
assign Buffer_4_reset = reset;
assign Buffer_4_io_enq_valid = Buffer_3_io_deq_valid; // @[BubbleFifo.scala 27:25]
assign Buffer_4_io_enq_bits = Buffer_3_io_deq_bits; // @[BubbleFifo.scala 27:25]
assign Buffer_4_io_deq_ready = io_deq_ready; // @[BubbleFifo.scala 49:10]
endmodule
|
|