Starting with Alchitry Au+

Hello there! I’ m trying to use the Alchitry Au+, with the Alchitry Ft element board to build a system that could receive data from an external ADC from the Usb 3.0 port of the Ft board.
I’ m quite new to the world of the FPGAs, so I’ m looking for advice if you have, in particular on how to adapt the Mojo tutorials also for Alchitry Au+, beacuse I saw that most of the tutorials are on the Mojo board. If you have suggestions about how to interface the Au+ with the ADC, are welcome, or also tips of any tipe.
Thank you!

I’d start by running through the beginner tutorials so you get a feel for hardware design. It’ll make understanding everything else much easier. https://alchitry.com/lucid

The Au+ is basically just the Au with a bigger FPGA so all the Au tutorials are identical except for choosing the Au+ from the board dropdown when you create your project.

While it isn’t included in the currently published Alchitry Labs version, you can download a module for talking to the FT600 here https://raw.githubusercontent.com/alchitry/Alchitry-Labs/master/library/components/ft600.luc and the accompanying constraint file https://raw.githubusercontent.com/alchitry/Alchitry-Labs/master/library/components/ft.acf

I’ll have a tutorial for these shortly after they are in the published Alchitry Labs. Once you get a feel for Ludid, they should be pretty straightforward to use though.

I have tried to use the Ft600 module and the constraint file,that you attached here, with this simple top module that sends an ‘H’ to the usb port , but it seems to do nothing. The building is ok, but as I told you, when i program the configuration on the board it doesn’t send anything. Where can be the problem?
Here I attach the verilog top module:

module au_plus_top(
input clk, // 100MHz clock
input ft_clk,
input rst_n, // reset button (active low)
//output [7:0] led, // 8 user controllable LEDs
//input usb_rx, // USB->Serial input
//output usb_tx, // USB->Serial output
input ft_rxf, // RX buffer empty (1 = empty, 0 = not empty)
input ft_txe, // TX buffer full (1 = full, 0 = has space)
inout [1:0] ft_be, // bidirectional byte enable (1 = valid)
output ft_rd, // read flag (1 = inactive, 0 = read)
output ft_wr, // write flag (1 = inactive, 0 = write)
output ft_oe, // output enable (1 = FPGA output, 0 = FT600 output)
inout [15:0] ft_data // bidirectional data bus,
);

wire rst= !rst_n;
wire [15:0] data_out = 0;
wire [1:0] valid_dout= 0;
reg [15:0] data_to_send=0;
wire [1:0] valid_d_send=0;
wire FIFO_full=0;

          

// The reset conditioner is used to synchronize the reset signal to the FPGA
// clock. This ensures the entire FPGA comes out of reset at the same time.
//reset_conditioner reset_conditioner(.clk(clk), .in(!rst_n), .out(rst));

ft600 ft600
(.clk(clk),
 .rst(rst),
 .ft_clk(ft_clk),
 .ft_rxf(ft_rxf),
 .ft_txe(ft_txe),
 .ft_be(ft_be[1:0]),
 .ft_rd(ft_rd),
 .ft_wr(ft_wr),
 .ft_oe(ft_oe),
 .ft_data(ft_data[15:0]),
 .ui_dout(data_out[15:0]),
 .ui_dout_valid(valid_dout[1:0]),
 .ui_din(data_to_send[15:0]),
 .ui_din_valid(valid_d_send[1:0]),
 .ui_full(FIFO_full));

// assign led = 8’h00; // turn LEDs off

// assign usb_tx = usb_rx; // echo the serial data

assign valid_d_send= 2’b11;

always  @(posedge clk)

data_to_send = 16'h48;// Sending letter H (ASCII code) to usb 3.0 port

endmodule
[hr]

If you have it, the tutorial you mentioned, it would be very useful to me. Even tough if is a Beta version, I can test it and give you a feedback.

Does anyone have any other idea? Or has tried to use Alchitry Ft and can help me with USB 3.0 communication…