3 (sys_clk_pin, /* I think this is 100Mhz */
5 fpga_0_RS232_Uart_1_ctsN_pin,
6 fpga_0_RS232_Uart_1_rtsN_pin,
7 fpga_0_RS232_Uart_1_sin_pin,
8 fpga_0_RS232_Uart_1_sout_pin
13 input fpga_0_RS232_Uart_1_ctsN_pin;
14 output fpga_0_RS232_Uart_1_rtsN_pin;
15 input fpga_0_RS232_Uart_1_sin_pin;
16 output fpga_0_RS232_Uart_1_sout_pin;
19 assign clk = sys_clk_pin;
21 assign rst = sys_rst_pin;
23 wire data_to_host_full;
24 wire data_to_host_write_enable;
25 wire [7:0] data_to_host;
27 wire data_to_fleet_empty;
28 wire data_to_fleet_read_enable;
29 wire [7:0] data_to_fleet;
33 reg [7:0] data_to_host_r;
36 assign data_to_host = data_to_host_r;
37 assign data_to_host_write_enable = we;
38 assign data_to_fleet_read_enable = re;
44 initial data_to_host_r = 107;
45 always @(posedge clk) begin
46 if (re && !data_to_fleet_empty) begin
47 data_to_host_r <= data_to_fleet;
52 if (data_to_host_full || data_to_fleet_empty) begin
62 initial ser_rst_r = 0;
63 assign ser_rst = rst & ser_rst_r;
68 sasc_brg sasc_brg(clk, ser_rst, 10, 217, sio_ce, sio_ce_x4);
69 sasc_top sasc_top(clk, ser_rst,
70 fpga_0_RS232_Uart_1_sin_pin,
71 fpga_0_RS232_Uart_1_sout_pin,
72 fpga_0_RS232_Uart_1_ctsN_pin,
73 fpga_0_RS232_Uart_1_rtsN_pin,
78 data_to_fleet_read_enable,
79 data_to_host_write_enable,
84 reg data_to_host_write_enable_reg;
85 reg data_to_fleet_read_enable_reg;
89 reg [7:0] root_in_d_reg;
96 root my_root(clk, rst,
97 root_in_r, root_in_a, root_in_d,
98 root_out_r, root_out_a, data_to_host);
100 fifo4 my_root(clk, rst,
101 root_in_r, root_in_a, root_in_d,
102 root_out_r, root_out_a, data_to_host);
104 assign root_out_a = root_out_a_reg;
105 assign root_in_r = root_in_r_reg;
106 assign data_to_fleet_read_enable = data_to_fleet_read_enable_reg;
107 assign data_to_host_write_enable = data_to_host_write_enable_reg;
108 assign root_in_d = root_in_d_reg;
111 always @(posedge clk)
113 data_to_host_write_enable_reg = 0;
114 if (root_out_r && !root_out_a_reg && !data_to_host_full) begin
115 data_to_host_write_enable_reg = 1;
117 end else if (root_out_a_reg && !root_out_r) begin
122 // awful hack to flush the superfluous null byte that seems to appear on bootup
123 reg [15:0] boot_counter;
126 always @(posedge clk)
130 if (boot_counter != 500) begin
131 data_to_fleet_read_enable_reg = 1;
133 boot_counter <= boot_counter + 1;
137 data_to_fleet_read_enable_reg = 0;
144 if (!data_to_fleet_empty && !root_in_r_reg && !root_in_a) begin
146 root_in_d_reg = data_to_fleet;
147 data_to_fleet_read_enable_reg = 1;
164 data_to_fleet_read_enable_reg = 0;
165 data_to_host_write_enable_reg = 0;