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