1 битовый поток в Verilog
У меня есть 6 газовых датчиков, которые подключены к плате Arduino uno, которую я использую в качестве АЦП. Выход каждого датчика будет представлять собой число от 0 до 1023. Данные передаются из Arduino в ПЛИС Altera для обработки.
Я посылаю двоичную форму числа на выходной вывод Arduino (последовательные данные) и, получая сигнал "записи" от ПЛИС, эти данные будут последовательно передаваться на входной порт ПЛИС с частотой примерно 10 кГц (период 0,1 мс).
Как восстановить исходный номер в ПЛИС после последовательной передачи?
1 ответ
Решение
Чтобы преобразовать последовательный в параллельный, вам нужен какой-то способ определить конец или начало последовательности. Что-то вроде следующего должно помочь вам начать:
input clk;
input end_of_sequence;
input sdata;
output reg [9:0] result;
//10 bit transmission
reg [9:0] pdata;
always @(posedge clk) begin
// Shift serial data in
pdata <= {pdata[8:0, sdata};
end
always @(posedge clk) begin
if (end_of_sequence ) begin
// at end of shifted data store the full parallel word
result <= pdata;
end
end