verilog中的1位流

时间:2014-08-18 13:40:11

标签: verilog bitstream

我有6个气体传感器连接到Arduino uno板,我用作ADC。每个传感器的输出将是0到1023之间的数字。数据从Arduino传输到Altera FPGA进行处理。

我将数字的二进制形式发送到Arduino的输出引脚(串行数据),并通过接收来自FPGA的“写入”信号,该数据将串行传输到FPGA的输入端口,大约10kHz(0.1ms)期)。

如何在串行传输后在FPGA中重建原始数字?

1 个答案:

答案 0 :(得分:0)

要将串行转换为并行,您需要某种方法来识别序列的结束或开始。像下面这样的东西应该让你开始:

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