remove unnecessary code from fpga test
diff --git a/verilog/rtl/fpga/fpga_pins.pcf b/verilog/rtl/fpga/fpga_pins.pcf index e3054f5..16d878e 100644 --- a/verilog/rtl/fpga/fpga_pins.pcf +++ b/verilog/rtl/fpga/fpga_pins.pcf
@@ -7,5 +7,4 @@ set_io usb_p B4 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 08a615b..df4e986 100644 --- a/verilog/rtl/fpga/fpga_top.v +++ b/verilog/rtl/fpga/fpga_top.v
@@ -1,6 +1,5 @@ module fpga_top ( input clk, // 16MHz Clock - output led, // User LED ON=1, OFF=0 input uart_rx, // uart in output uart_tx, // uart out inout usb_p, // USB+ @@ -13,15 +12,12 @@ localparam c_UART_SPEED = 115200; localparam c_CLKS_PER_BYTE = (c_CLOCK_MHZ*1000000+c_UART_SPEED*8-1)/(c_UART_SPEED*8); - wire clk_pll; - wire lock; + wire clk_pll; + pll pll48( .clock_in(clk), .clock_out(clk_pll) ); - wire dp_pu; - wire dp_rx; - wire dn_rx; - wire dp_tx; - wire dn_tx; - wire tx_en; + reg [5:0] reset_cnt = 0; + wire rstn = &reset_cnt; + always @(posedge clk_pll) reset_cnt <= reset_cnt + !rstn; wire in_ready; wire [7:0] in_data; @@ -30,21 +26,6 @@ wire [7:0] out_data; wire out_valid; - pll pll48( .clock_in(clk), .clock_out(clk_pll), .locked( lock ) ); - - assign led = 1'b1; - - reg [1:0] rstn_sync; - wire rstn; - assign rstn = rstn_sync[0]; - always @(posedge clk_pll or negedge lock) begin - if (~lock) begin - rstn_sync <= 2'd0; - end else begin - rstn_sync <= {1'b1, rstn_sync[1]}; - end - end - uart # ( .DATA_WIDTH(8) ) u_uart ( @@ -66,6 +47,21 @@ .prescale(c_CLKS_PER_BYTE) ); + wire dp_pu; + wire dp_rx; + wire dn_rx; + wire dp_tx; + wire dn_tx; + wire tx_en; + + assign usb_p = tx_en ? dp_tx : 1'bz; + assign dp_rx = usb_p; + + assign usb_n = tx_en ? dn_tx : 1'bz; + assign dn_rx = usb_n; + + assign usb_pu = dp_pu; + usb_cdc #( .VENDORID(16'h1D50), .PRODUCTID(16'h6130) @@ -84,9 +80,6 @@ .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), @@ -95,50 +88,4 @@ .dn_rx_i(dn_rx) ); - SB_IO #( - .PIN_TYPE(6'b101001), - .PULLUP(1'b0) - ) u_usb_p ( - .PACKAGE_PIN(usb_p), - .OUTPUT_ENABLE(tx_en), - .D_OUT_0(dp_tx), - .D_IN_0(dp_rx), - .D_OUT_1(1'b0), - .D_IN_1(), - .CLOCK_ENABLE(1'b0), - .LATCH_INPUT_VALUE(1'b0), - .INPUT_CLK(1'b0), - .OUTPUT_CLK(1'b0)); - - SB_IO #( - .PIN_TYPE(6'b101001), - .PULLUP(1'b0) - ) u_usb_n ( - .PACKAGE_PIN(usb_n), - .OUTPUT_ENABLE(tx_en), - .D_OUT_0(dn_tx), - .D_IN_0(dn_rx), - .D_OUT_1(1'b0), - .D_IN_1(), - .CLOCK_ENABLE(1'b0), - .LATCH_INPUT_VALUE(1'b0), - .INPUT_CLK(1'b0), - .OUTPUT_CLK(1'b0)); - - // drive usb_pu to 3.3V or to high impedance - SB_IO #( - .PIN_TYPE(6'b101001), - .PULLUP(1'b0)) - u_usb_pu ( - .PACKAGE_PIN(usb_pu), - .OUTPUT_ENABLE(dp_pu), - .D_OUT_0(1'b1), - .D_IN_0(), - .D_OUT_1(1'b0), - .D_IN_1(), - .CLOCK_ENABLE(1'b0), - .LATCH_INPUT_VALUE(1'b0), - .INPUT_CLK(1'b0), - .OUTPUT_CLK(1'b0)); - endmodule