UART 软核 测试
时间:10-02
整理:3721RD
点击:
我用verilog 写了UART Tx 的代码。
到目前为止,我先想测试UART传输,但我不太确定如何测试它。
我应该测试什么呢?
我不是要求测试代码。 我需要一些有关测试UART软核的指导。
谢谢!
到目前为止,我先想测试UART传输,但我不太确定如何测试它。
我应该测试什么呢?
我不是要求测试代码。 我需要一些有关测试UART软核的指导。
谢谢!
- module Tx_top(clk, reset, start, i_data, serial_out) // UART transmitter : parallel input, serial output
- input clk; // 48MHz
- input reset;
- input start; // i_data is valid, so start transmission
- input[7:0] i_data;
- output serial_out;
- wire baud_out; // 9600bps baudrate clock
- wire serial_data; // output from serializer (TxUART)
- TxUART tx (.clk(baud_out), .reset(reset), .start_tx(start), .i_data(i_data), .o_data(serial_data));
- baud_generator bg (.clk(clk), .baud_out(baud_out));
- shift_register sreg (.clk(baud_out), .reset(reset), .data_in(serial_data), .data_out(serial_out));
- // FIFO tx_fifo (clk, reset, enqueue, dequeue, flush, i_value, almost_full, almost_empty, o_value);
- endmodule
- `define Tx_IDLE_BIT 0
- `define Tx_START_BIT 1
- `define Tx_DATA_BITS = ALMOST_FULL_THRESHOLD;
- assign almost_empty = count <= ALMOST_EMPTY_THRESHOLD;
- assign o_value = data[head];
- always @(posedge clk)
- begin
- if (reset) begin
- head <= 0;
- tail <= 0;
- count <= 0;
- end
- else begin
- if (flush) begin
- head <= 0;
- tail <= 0;
- count <= 0;
- end
- else begin
- if (enqueue) begin
- tail <= tail + 1;
- data[tail] <= i_value;
- end
- if (dequeue) begin
- head <= head + 1;
- end
- if (enqueue && !dequeue)
- count <= count + 1;
- else if (dequeue && !enqueue)
- count <= count - 1;
- end
- end
- end
- endmodule
最简单的就是发送一个数,正确点个灯