Line 64... |
Line 64... |
output frameErr; // framing error
|
output frameErr; // framing error
|
output overrun; // receiver overrun
|
output overrun; // receiver overrun
|
output parityErr; // parity error
|
output parityErr; // parity error
|
output break_o; // break detected
|
output break_o; // break detected
|
output gerr; // global error indicator
|
output gerr; // global error indicator
|
output [3:0] qcnt; // count of number of words queued
|
output [5:0] qcnt; // count of number of words queued
|
output [10:0] cnt; // receiver counter
|
output [10:0] cnt; // receiver counter
|
output bitStream; // received bit stream
|
output bitStream; // received bit stream
|
|
|
//0 - simple sampling at middle of symbol period
|
//0 - simple sampling at middle of symbol period
|
//>0 - sampling of 3 middle ticks of sumbol perion and results as majority
|
//>0 - sampling of 3 middle ticks of sumbol perion and results as majority
|
Line 93... |
Line 93... |
reg didRd;
|
reg didRd;
|
wire [11:0] dout1;
|
wire [11:0] dout1;
|
reg full1;
|
reg full1;
|
wire fifoFull, fifoEmpty;
|
wire fifoFull, fifoEmpty;
|
|
|
assign ack = cyc & cs;
|
ack_gen #(
|
|
.READ_STAGES(1),
|
|
.WRITE_STAGES(0),
|
|
.REGISTER_OUTPUT(1)
|
|
) uag1
|
|
(
|
|
.rst_i(rst),
|
|
.clk_i(clk),
|
|
.ce_i(1'b1),
|
|
.i(cs & cyc & ~wr),
|
|
.we_i(cs & cyc & wr),
|
|
.o(ack),
|
|
.rid_i(0),
|
|
.wid_i(0),
|
|
.rid_o(),
|
|
.wid_o()
|
|
);
|
|
|
wire pe_rd, pe_wf;
|
wire pe_rd, pe_wf;
|
edge_det ued1 (.rst(rst), .clk(clk), .ce(1'b1), .i(ack & ~wr), .pe(pe_rd), .ne(), .ee());
|
edge_det ued1 (.rst(rst), .clk(clk), .ce(1'b1), .i(cs & cyc & ~wr), .pe(pe_rd), .ne(), .ee());
|
edge_det ued2 (.rst(rst), .clk(clk), .ce(1'b1), .i(wf), .pe(pe_wf), .ne(), .ee());
|
edge_det ued2 (.rst(rst), .clk(clk), .ce(1'b1), .i(wf), .pe(pe_wf), .ne(), .ee());
|
|
|
assign bitStream = rx_data[14];
|
assign bitStream = rx_data[14];
|
assign bz = t3==12'd0;
|
assign bz = t3==12'd0;
|
wire rdf = fifoEnable ? pe_rd : pe_wf;
|
wire rdf = fifoEnable ? pe_rd : pe_wf;
|
|
|
uart6551Fifo #(.WID(15)) uf1
|
// Distributed RAM fifo (vendor supplied):
|
|
// First word fall-through
|
|
// 64 entries deep
|
|
// 15 bits wide
|
|
uart6551RxFifo uf1
|
(
|
(
|
.clk(clk),
|
.clk(clk),
|
.rst(rst|clear|fifoClear),
|
.srst(rst|clear|fifoClear),
|
.wr(wf),
|
.wr_en(wf),
|
.rd(rdf),
|
.rd_en(rdf),
|
.din({bz,perr,ferr,t3}),
|
.din({bz,perr,ferr,t3}),
|
.dout({break_o,parityErr,frameErr,dout1}),
|
.dout({break_o,parityErr,frameErr,dout1}),
|
.ctr(qcnt),
|
.data_count(qcnt),
|
.full(fifoFull),
|
.full(fifoFull),
|
.empty(fifoEmpty)
|
.empty(fifoEmpty)
|
);
|
);
|
|
|
assign dout = fifoEnable ? dout1 : t5;
|
assign dout = fifoEnable ? dout1 : t5;
|