Цитата(spectr @ Jun 28 2017, 09:23)

Похоже что сигналтапу не хватает клоков, чтобы заполнить весь буфер. На АЦП, видимо, у вас идет клок, разрешаемый чипселектом, а не постоянно? В таком случае сделайте еще один такой же клок, но который будет работать постоянно. Тогда сигналтап от него заработает.
Это если прописать таким образом?Ниже:
Код
always @ (posedge CLOCK_8)
begin
count <= count + 1;
end
Цитата(AVR @ Jun 28 2017, 09:39)

Должен быть постоянный клок, синхронный с данными, которые хочется захватить. Идет ли он извне или генерируется внутри, мне казалось это не принципиально.
В приведенном куске кода убрана шапка модуля - зачем? Чтоб труднее было помочь?
Если прописать вот так:
Код
always @ (posedge CLOCK_8)
begin
count <= count + 1;
end
Прикладываю с шапкой:
Код
//Проект АЦП связь с FPGA
localparam int unsigned DATA_TEMP = 97; //Сумма разрядносте 6 АЦП
localparam int unsigned SYS_CLOCK_FREQ = 10000000; // Частота ADC_CLK в герцах.
module NOKIA (input ADC_SDO , SPICMOSI , SPICCLK , SPICFLG,
output ADC_CNV , SPICMISO , ADC_CLK );
logic timer_2Hz;
logic timer_1Hz;
reg DATA_TEMP [96:0]; // Разрядность даннных АЦП
reg RDY;
reg CNV ;
reg serial_data;
reg SERIAL_BIT;
reg TEMP [96:0];
reg COUNT;
always @(posedge ADC_CLK) begin
if (COUNT == (SYS_CLOCK_FREQ/2 - 1)) begin
timer_2Hz <= 1'b1; // Этот сигнал будет выставляться в лог.1 на 1 такт с периодом 1/(SYS_CLOCK_FREQ/2), т.е.,
COUNT <= '0; // с частотой 2 Гц. Счетчик cnt при этом сбрасывается.
end
else begin
COUNT <= COUNT+1; // В иных случаях счет разрешен,
timer_2Hz <= 1'b0; // а сигнал таймера д.б. занулен.
end
end
// Утверждают сигнал CNV
always @ (negedge ADC_CLK)
begin
if ((COUNT == 97) || (COUNT == 98))
CNV = 1'b0;
else
CNV = 1'b1;
end
// Чтение последовательных данных в 97-битовый регистр. После этого преобразовать его в параллельный, если счетчик равен 97 (конец потока данных)
always @ (negedge ADC_CLK)
begin
DATA_TEMP[CNV] <= (serial_data);
if (COUNT == 97)
TEMP <= DATA_TEMP;
end
always_ff @(posedge ADC_CLK) begin
if (timer_2Hz == 1'b1) begin
timer_1Hz <= ~timer_1Hz;
end
end
assign ADC_CNV = CNV ;
endmodule
Цитата(doom13 @ Jun 28 2017, 09:06)

Делитель какой частоты? Можете взять ее с клоковой ножки FPGA, подключить PLL и затактировать свою систему клоком с PLL.
Его нужно откуда-то взять, а это, как вариант, клоковая ножка FPGA, при условии что на нее подается сигнал тактирования.
И да, Ваш делитель - "не совсем делитель ", высокий уровень один такт ADC_CLK, все остальное время низкий.
Нужно прописать с постоянной на "высокий" ? Или сделать , как я привел уже пример? Ниже:
Код
always @ (posedge CLOCK_8)
begin
count <= count + 1;
end
Сообщение отредактировал Ensider - Jun 28 2017, 09:42