Stap 6: Het verzenden van de Staten naar de zender
Nu dat de Staten beschikbaar voor de zender zijn moet de zender weten wanneer het is OK om gegevens te verzenden. Met behulp van een ternaire verklaring de logica voor dit kan worden gedaan zonder de noodzaak van een altijd blokkeren.
assign uart_transmit = (next_state != prev_state && clk_50 == 1'b1 ? 1 : 0);
Dit is equivalent aan de volgende altijd blokkeren:
always @ (posedge(clk_50)) begin if (next_state != prev_state) uart_transmit <= 1; else uart_transmit <= 0; end
De laatste staat moet bekend zijn oog op de opsporing van een verandering van staat. Dit kan worden gedaan met een andere tertiaire verklaring:
assign prev_state = (uart_busy == 1'b0 && tx_clk == 1'b1 ? state : prev_state);
Nu moet de code genereren de bitstream en programma de Basys 3 gereed te maken. Ik ben ervan uitgaande dat u hebt gevolgd op de How to Code uw eigen klauw Machine tutorial en dit hebben gedaan vóór stap.
Ik schreef een klein python programma dat wordt afgedrukt en leest de seriële poort aan de console met