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;
67 sasc_brg sasc_brg(clk, ser_rst, 10, 217, sio_ce, sio_ce_x4);
68 sasc_top sasc_top(clk, ser_rst,
69 fpga_0_RS232_Uart_1_sin_pin,
70 fpga_0_RS232_Uart_1_sout_pin,
71 fpga_0_RS232_Uart_1_ctsN_pin,
72 fpga_0_RS232_Uart_1_rtsN_pin,
77 data_to_fleet_read_enable,
78 data_to_host_write_enable,
82 reg data_to_host_write_enable_reg;
83 reg data_to_fleet_read_enable_reg;
87 reg [7:0] root_in_d_reg;
94 root my_root(clk, rst,
95 root_in_r, root_in_a, root_in_d,
96 root_out_r, root_out_a, data_to_host);
99 root_in_r, root_in_a, root_in_d,
100 root_out_r, root_out_a, data_to_host);
102 assign root_out_a = root_out_a_reg;
103 assign root_in_r = root_in_r_reg;
104 assign data_to_fleet_read_enable = data_to_fleet_read_enable_reg;
105 assign data_to_host_write_enable = data_to_host_write_enable_reg;
106 assign root_in_d = root_in_d_reg;
109 always @(posedge clk)
111 data_to_host_write_enable_reg = 0;
112 if (root_out_r && !root_out_a_reg && !data_to_host_full) begin
113 data_to_host_write_enable_reg = 1;
115 end else if (root_out_a_reg && !root_out_r) begin
120 // awful hack to flush the superfluous null byte that seems to appear on bootup
121 reg [15:0] boot_counter;
124 always @(posedge clk)
128 if (boot_counter != 500) begin
129 data_to_fleet_read_enable_reg = 1;
131 boot_counter <= boot_counter + 1;
135 data_to_fleet_read_enable_reg = 0;
136 if (!data_to_fleet_empty && !root_in_r_reg && !root_in_a) begin
138 root_in_d_reg = data_to_fleet;
139 data_to_fleet_read_enable_reg = 1;
156 data_to_fleet_read_enable_reg = 0;
157 data_to_host_write_enable_reg = 0;