안녕 모두를 위해 3 개 ADC 데이터의 합을 가져 가라. 현재, 나는 3 샘플링에서 ADC 데이터의 합을 계산하기 위해 펌웨어를 설계하려고합니다. 먼저, 코드에서 한 번 샘플링 할 때 하나의 ADC에 대해 설명합니다. 당신이 코드를 볼 때, 당신은 adc_data이 adcIfData에서 값을 얻을 것이다, clkr 시계 및 adcIfEnb == 1의 상승 에지와 것을 알 수 있으며,이 한 샘플링의 데이터입니다 . 다음 클럭 클럭의 상승 에지 및 adcIfEnb == 1에서이 데이터는 iradcTrg에 저장됩니다. 마지막으로, adc_data의 3 가지 데이터가 iradcTrg에 저장되고이 데이터를 3 개 요약합니다. <p></p> 나는를 Verilog 언어에 의한 프로그래밍 FPGA에서 초보자 오전 3 샘플링
wire adcIfData[79:0];
reg
always @(posedge clkr) begin
if(adcIfEnb) begin
adc_data[9:0] <= adcIfData[9:0];
end
end
reg [29:0] iradcTrg;
reg [9:0] adcTrg;
always @(posedge clkr) begin
if (adcIfEnb) begin
iradcTrg[29:0] <= {adc_trg[19:10],adc_trg[9:0],adc_data[9:0]};
adcTrg[9:0] <= adc_trg[29:20] + adc_trg[19:10] + adc_trg[9:0];
end
end
그러나, 나는 해결하는 방법을 모르는이 문제가있다.
우선 adc_data 첫 데이터 iradcTrg 및 adcTrg 저장되는 시작 시간에서도 합을 취. 이는 adcTrg = 0 + 0 + first_adc_data을 의미하지만이 합계는 피할 필요가 있습니다.
둘째, 내 디자인에 따라, 나는 adc_data이 iradcTrg으로 직렬화되는 것을 알 수있다.
[1 2 3 4 5 6 => 1 2 3 4 5 6 => 1 2 3 4 5 6-
:하지만 그것은 adc_data 이렇게 저장된다는 것을 의미 제 경우, I는 adc_data [4 5 6]
따라서 어떻게 합을
[1 2 3 4 5 6 => 1 2 3을 얻기 위해 다음과 같이 저장되는 것으로하고자 내가 예상했던 결과를 얻기 위해 코드를 수정해야합니까 아니면이 경우 어떤 문서가 도움이 될 수 있습니까?