fix fpga test all tests pass and fpga works
diff --git a/verilog/rtl/fpga/README.md b/verilog/rtl/fpga/README.md index 32fd384..58964bb 100644 --- a/verilog/rtl/fpga/README.md +++ b/verilog/rtl/fpga/README.md
@@ -1,10 +1,9 @@ -# Similation tests +# Simulation tests ## UART ```sh -cd verilog/rtl/ -iverilog test_uart.v verilog-uart/rtl/uart.v verilog-uart/rtl/uart_rx.v verilog-uart/rtl/uart_tx.v -o test_uart.out +iverilog test_uart.v ../verilog-uart/rtl/uart.v ../verilog-uart/rtl/uart_rx.v ../verilog-uart/rtl/uart_tx.v -o test_uart.out ./test_uart.out gtkwave test_uart.vcd @@ -13,7 +12,7 @@ ## USB ```sh -cd verilog/rtl/usb_cdc/ +cd ../usb_cdc/ git apply ../0001-fix-make-targets.patch cd examples/TinyFPGA-BX/OSS_CAD_Suite/
diff --git a/verilog/rtl/fpga/fpga_pins.pcf b/verilog/rtl/fpga/fpga_pins.pcf index 5c83f73..e3054f5 100644 --- a/verilog/rtl/fpga/fpga_pins.pcf +++ b/verilog/rtl/fpga/fpga_pins.pcf
@@ -5,7 +5,7 @@ set_io usb_pu A3 set_io usb_n A4 set_io usb_p B4 -set_io uart_rx A2 -set_io uart_tx A1 +set_io uart_tx A2 +set_io uart_rx A1 set_io led B3 set_io clk B2
diff --git a/verilog/rtl/fpga/fpga_top.v b/verilog/rtl/fpga/fpga_top.v index e9d61c0..fa4093c 100644 --- a/verilog/rtl/fpga/fpga_top.v +++ b/verilog/rtl/fpga/fpga_top.v
@@ -1,7 +1,7 @@ module fpga_top ( input clk, // 16MHz Clock output led, // User LED ON=1, OFF=0 - input uart_rx, // uart in + input uart_rx, // uart in output uart_tx, // uart out inout usb_p, // USB+ inout usb_n, // USB- @@ -11,7 +11,6 @@ localparam BIT_SAMPLES = 4; localparam c_CLOCK_MHZ = BIT_SAMPLES*12; localparam c_UART_SPEED = 115200; - localparam c_CLKS_PER_BIT = c_CLOCK_MHZ*1000000/c_UART_SPEED; localparam c_CLKS_PER_BYTE = (c_CLOCK_MHZ*1000000+c_UART_SPEED*8-1)/(c_UART_SPEED*8); wire clk_pll; //48MHz clock @@ -24,17 +23,16 @@ wire dn_tx; wire tx_en; - reg in_ready; + wire in_ready; wire [7:0] in_data; wire in_valid; wire out_ready; - reg [7:0] out_data; - reg out_valid; + wire [7:0] out_data; + wire out_valid; pll pll48( .clock_in(clk), .clock_out(clk_pll), .locked( lock ) ); assign led = 1'b1; - //assign usb_pu = dp_pu; reg [1:0] rstn_sync; wire rstn; @@ -53,11 +51,13 @@ .clk(clk_pll), .rst(~rstn), + //data input to uart tx .s_axis_tdata(out_data), .s_axis_tvalid(out_valid), .s_axis_tready(out_ready), .txd(uart_tx), + //data output from uart rx .m_axis_tdata(in_data), .m_axis_tvalid(in_valid), .m_axis_tready(in_ready), @@ -73,14 +73,20 @@ .clk_i(clk_pll), // 48MHz .rstn_i(rstn), .app_clk_i(1'b0), + + //data output from usb rx .out_data_o(out_data), .out_valid_o(out_valid), .out_ready_i(out_ready), + + //data input to usb tx .in_data_i(in_data), .in_valid_i(in_valid), .in_ready_o(in_ready), + .frame_o(), .configured_o(), + .dp_pu_o(dp_pu), .tx_en_o(tx_en), .dp_tx_o(dp_tx),
diff --git a/verilog/rtl/test_uart.v b/verilog/rtl/fpga/test_uart.v similarity index 100% rename from verilog/rtl/test_uart.v rename to verilog/rtl/fpga/test_uart.v