Программируемая логика - это не так уж и сложно. Разберемся вместе.
Ответить

Адский девайс. Серия вопросов по ПЛИС.

Чт авг 25, 2016 11:34:54

Здравствуйте уважаемые!
Делаю в рамках самообразования проект на плате DE1-SoC от terasic
периодически появляются вопросы, с которыми не могу справится самостоятельно. Очень надеюсь что здесь подкинут свежих идей!
В частности назрело 2 вопроса.
1) Как просто и правильно поделить 24 бита на 3 куска по 8?
Я сейчас делаю это так, но может это не совсем удобно, и есть более прозрачные и удобные способы?
Спойлерmodule bytemode (enter_data,drop_data,clk,uartOK);

input uartOK; // сюда уарт сообщает о том что он все отправил
input clk; // тактирование
input [23:0] enter_data; // входящая 24битная шина
output [7:0] drop_data; // нужный результат 8бит

reg [0:23] testmode=24'hFDB044; // тестовая переменная
reg [7:0] temp1 [0:3]; // массив пакетов
reg [7:0] automat=1; // счетчик



always @ (posedge clk)
if (automat!=3) begin
if (uartOK) begin // если счетчик и уарт готовы
automat=automat+1; // мотаем счетчик
if (automat==1) // можно было сделать и через case, но вот так пока. 1 этап разделки туши.
begin
if (enter_data!=0) // если ненулевые данные
temp1[0]=enter_data[7:0]; // отгрызаем кусок
end
else if (automat==2) // 2 этап
begin
if (enter_data!=0)
temp1[1]=enter_data[15:8]; // еще кусок
end
else if (automat==3) // 3 и последний этап
begin
if (enter_data!=0)
temp1[2]=enter_data[23:16]; // последний кусок
automat=0;
end
end
end

assign drop_data=temp1[automat]; // каждый этап формирует выходной сигнал в виде нашего 8битного куска


endmodule


2. У меня счетчик прибавляет к значению по единичке (своеобразный генератор пилы) и выплёвывает это в FIFO (в quartus'е LPM_FIFO в стандартной библиотеке), потом это идет в означенный выше разделитель, и дальше в UART. Но UART вместо нужных символов показывает погоду. Где почитать про то как подобные вещи синхронизируются между собой?

Заранее спасибо!

Re: Адский девайс. Серия вопросов.

Чт авг 25, 2016 22:44:50

Для начала не хватает сигнала начальной установки счечика, без него Вы первую передачу начинаете с произвольного места во входных данных. Для выбора байтов ИМХО лучше использовать case т.к. он скомпилируется в многоканальный мультиплесор. кроме того я бы посмотрел в какой момент лучше инкрементировать счетчик. Изучение ПЛИС - задача интересная, но требует большого объема базовых знаний до получения первого результата. Смотрите в сторону изучения МodelSim с ним многое можно увидеть "по шагам"

Re: Адский девайс. Серия вопросов.

Сб сен 03, 2016 11:05:52

Большое спасибо за ответ!
Появился еще такой вопрос
Бьюсь, бьюсь, а так и не получилось увязать между собой разделитель 24 битной шины на 3 по 8 и УАРТ
Получается что фифо выдает очередную порцию данных после того как уарт сообщает об отправке данных, этот же сигнал окончания отправки сообщает разделителю что можно делить. Но почему-то на выходе получается что сообщения разделены "00", т.е например мы передаем FFDE88 и DDE6E3 а приходит "FFDE8800DDE6E3" и так нулями между собой все разделяется. Поидее наверное нужно чтобы разделитель сообщал о наличии данных УАРТУ, и тот срабатывал после этого. Но получается что УАРТ ждет сигнала от разделителя, а разделитель ждёт сигнала от УАРТА. Как избавится от этого ожидания друг друга, чтобы они могли сообщать о состоянии друг друга и при этом работать по сигналу друг от друга?
Заранее спасибо за помощь

Re: Адский девайс. Серия вопросов.

Сб сен 03, 2016 21:05:51

Gromph писал(а):Получается что фифо выдает очередную порцию данных после того как уарт сообщает об отправке данных, этот же сигнал окончания отправки сообщает разделителю что можно делить. Но почему-то на выходе получается что сообщения разделены "00", т.е например мы передаем FFDE88 и DDE6E3 а приходит "FFDE8800DDE6E3" и так нулями между собой все разделяется.

По всей видимости у Вас объявляется двухбитная переменная (счетчик, или еще что-то), которая имеет четыре возможных состояния: 00, 01, 10 и 11. В процессе работы, счетчик проходит все комбинации, а дешифратор рассчитан всего на три состояния (наверное 00, 01 и 10) вот и получается дополнительная вставка лишних нулей.
Gromph писал(а):Поидее наверное нужно чтобы разделитель сообщал о наличии данных УАРТУ, и тот срабатывал после этого. Но получается что УАРТ ждет сигнала от разделителя, а разделитель ждёт сигнала от УАРТА. Как избавится от этого ожидания друг друга, чтобы они могли сообщать о состоянии друг друга и при этом работать по сигналу друг от друга?

Сделайте конечный автомат (КА), на вход которого будете заводить сигналы и уарта и разделителя - пусть он разруливает очередность работы. Но есть подозрение, что исключив четвертое состояние у счетчика, Вы избавитесь от дополнительных нулей без привлечения КА.

Re: Адский девайс. Серия вопросов.

Пн сен 05, 2016 07:12:14

Спасибо Meteor! Вы оказались правы не в бровь а в глаз просто. У делителя был лишний такт. Как только от него избавился пакеты полетели без пауз.
За ловлей этих нулей совсем забыл что у меня уарт по 4 раза отправляет одно и то же, т.е. 001 001 001 001 002 002 002 002 003 003 003 003 и т.д.
Теперь ловлю этот баг
Как выловлю, нарастающим итогом буду прикручивать синус CORDIC'ом.

Re: Адский девайс. Серия вопросов.

Ср сен 07, 2016 10:07:30

Вопрос с повторной отправкой одного и того же пакета решился более ранним запросом на чтение из фифо. Правда теперь теряется 1 пакет. Допустим идет 0001 0002 0003 0005 0006 0007 009 и т.д.
Поиски продолжаются.

Re: Адский девайс. Серия вопросов.

Вс сен 11, 2016 20:41:24

Что за ФИФО: одноклоковое или двуклоковое?
С фифо в свое время намучился, есть особенности их использования. Дело в том, что счетчики числа записанных байт (rdusedw и wrusedw) имеют задержку примерно от трех тактов (для двухтактового ФИФО определяется меньшей частотой).
Для надежного применения в проектах стараюсь разделять интервалы записи в фифо и чтения для корректного счета.
Не знаю насколько Вам это пригодится, но вполне возможно данная информация не станет лишней.

Re: Адский девайс. Серия вопросов.

Вт сен 13, 2016 07:10:01

Одноклоковое.
По поводу фифо - спасибо за информацию! Пригодится!

Re: Адский девайс. Серия вопросов.

Ср сен 14, 2016 13:38:08

Что-то не клеится у меня с фифо. А где можно посмотреть какие-нибудь простые примеры работы?
Товарищ гугл ценной информацией поделится отказался(

Re: Адский девайс. Серия вопросов.

Чт сен 15, 2016 06:01:09

Gromph писал(а):Что-то не клеится у меня с фифо.

Смотрите в сторону ModelSim, он прекрасно отображает работу кода на уровне функционального моделирования.

Re: Адский девайс. Серия вопросов.

Пт сен 30, 2016 10:09:02

И снова я.
Устройство какое-то время работает нормально, а потом...ну назовём это "полунормально".

Спойлер00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 01 00 00 02 00 00 03 00 00 04 00 00 05 00 00 06 00 00 07
00 00 08 00 00 09 00 00 0A 00 00 0B 00 00 0C 00 00 0D 00 00 0E 00 00
0F 00 00 10 00 00 11 00 00 12 00 00 13 00 00 14 00 00 15 00 00 16 00
00 17 00 00 18 00 00 19 00 00 1A 00 00 1B 00 00 1C 00 00 1D 00 00 1E
00 00 1F 00 00 20 00 00 21 00 00 22 00 00 23 00 00 24 00 00 25 00 00
26 00 00 27 00 00 28 00 00 29 00 00 2A 00 00 2B 00 00 2C 00 00 2D 00
00 2E 00 00 2F 00 00 30 00 00 31 00 00 32 00 00 33 00 00 34 00 00 35
00 00 36 00 00 37 00 00 38 00 00 39 00 00 3A 00 00 3B 00 00 3C 00 00
3D 00 00 3E 00 00 3F 00 00 40 00 00 41 00 00 42 00 00 43 00 00 44 00
00 45 00 00 46 00 00 47 00 00 48 00 00 49 00 00 4A 00 00 4B 00 00 4C
00 00 4D 00 00 4E 00 00 4F 00 00 50 00 00 51 00 00 52 00 00 53 00 00
54 00 00 55 00 00 56 00 00 57 00 00 58 00 00 59 00 00 5A 00 00 5B 00
00 5C 00 00 5D 00 00 5E 00 00 5F 00 00 60 00 00 61 00 00 62 00 00 63
00 00 64 00 00 65 00 00 66 00 00 67 00 00 68 00 00 69 00 00 6A 00 00
6B 00 00 6C 00 00 6D 00 00 6E 00 00 6F 00 00 70 00 00 71 00 00 72 00
00 73 00 00 74 00 00 75 00 00 76 00 00 77 00 00 78 00 00 79 00 00 7A
00 00 7B 00 00 7C 00 00 7D 00 00 7E 00 00 7F 00 00 80 00 00 81 00 00
82 00 00 83 00 00 84 00 00 85 00 00 86 00 00 87 00 00 88 00 00 89 00
00 8A 00 00 8B 00 00 8C 00 00 8D 00 00 8E 00 00 8F 00 00 90 00 00 91
00 00 92 00 00 93 00 00 94 00 00 95 00 00 96 00 00 97 00 00 98 00 00
99 00 00 9A 00 00 9B 00 00 9C 00 00 9D 00 00 9E 00 00 9F 00 00 A0 00
00 A1 00 00 A2 00 00 A3 00 00 A4 00 00 A5 00 00 A6 00 00 A7 00 00 A8
00 00 A9 00 00 AA 00 00 AB 00 00 AC 00 00 AD 00 00 AE 00 00 AF 00 00
B0 00 00 B1 00 00 B2 00 00 B3 00 00 B4 00 00 B5 00 00 B6 00 00 B7 00
00 B8 00 00 B9 00 00 BA 00 00 BB 00 00 BC 00 00 BD 00 00 BE 00 00 BF
00 00 C0 00 00 C1 00 00 C2 00 00 C3 00 00 C4 00 00 C5 00 00 C6 00 00
C7 00 00 C8 00 00 C9 00 00 CA 00 00 CB 00 00 CC 00 00 CD 00 00 CE 00
00 CF 00 00 D0 00 00 D1 00 00 D2 00 00 D3 00 00 D4 00 00 D5 00 00 D6
00 00 D7 00 00 D8 00 00 D9 00 00 DA 00 00 DB 00 00 DC 00 00 DD 00 00
DE 00 00 DF 00 00 E0 00 00 E1 00 00 E2 00 00 E3 00 00 E4 00 00 E5 00
00 E6 00 00 E7 00 00 E8 00 00 E9 00 00 EA 00 00 EB 00 00 EC 00 00 ED
00 00 EE 00 00 EF 00 00 F0 00 00 F1 00 00 F2 00 00 F3 00 00 F4 00 00
F5 00 00 F6 00 00 F7 00 00 F8 00 00 F9 00 00 FA 00 00 FB 00 00 FC 00
00 FD 00 00 FE 00 00 FF 01 00 00 01 00 01 01 00 02 01 00 03 01 00 04
01 00 05 01 00 06 01 00 07 01 00 08 01 00 09 01 00 0A 01 00 0B 01 00
0C 01 00 0D 01 00 0E 01 00 0F 01 00 10 01 00 11 01 00 12 01 00 13 01
00 14 01 00 15 01 00 16 01 00 17 01 00 18 01 00 19 01 00 1A 01 00 1B
01 00 1C 01 00 1D 01 00 1E 01 00 1F 01 00 20 01 00 21 01 00 22 01 00
23 01 00 24 01 00 25 01 00 26 01 00 27 01 00 28 01 00 29 01 00 2A 01
00 2B 01 00 2C 01 00 2D 01 00 2E 01 00 2F 01 00 30 01 00 31 01 00 32
01 00 33 01 00 34 01 00 35 01 00 36 01 00 37 01 00 38 01 00 39 01 00
3A 01 00 3B 01 00 3C 01 00 3D 01 00 3E 01 00 01 01 01 01 01 01 01 01
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
02 02 02 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03
03 03 03 03 03 03 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
04 04 04 04 04 04 04 04 04 05 05 05 05 05 05 05 05 05 05 05 05 05 05
05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
05 05 05 05 05 05 05 05 05 05 05 05 06 06 06 06 06 06 06 06 06 06 06
06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 07 07 07 07 07 07 07 07
07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07
07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07
07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07
07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07
07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07
07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07
07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07
07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07
07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07
07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07
07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 08 08 08 08 08
08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08
08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08
08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08
08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08
08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08
08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08
08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08
08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08
08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08
08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08
08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 09 09
09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09
09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09
09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09
09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09
09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09
09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09
09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09
09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09
09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09
09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09
09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09
09 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A
0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A
0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A
0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A
0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A
0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A
0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A
0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A
0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A
0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A
0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A
0A 0A 0A 0A 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B
0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B
0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B
0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B
0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B
0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B
0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B
0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B
0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B
0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B
0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B
0B 0B 0B 0B 0B 0B 0B 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C
0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C
0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C
0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C
0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C
0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C
0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C
0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C
0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C
0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C
0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C
0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E
0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E
0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E
0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E
0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E
0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E
0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E
0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E
0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E
0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E
0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E
0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0F 0F 0F 0F 0F 0F 0F
0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F
0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F
0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F
0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F
0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F
0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F
0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F
0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F
0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F
0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F
0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 10 10 10 10
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
10 10 10 10 10


До момента 3E 01 00 все работает нормально, т.е. он по единичке добавляет в 24 бита переменную, и получается нечто формата 01 00 00, 02 00 00, 03 00 00 и т.д.
А потом раз - и начинается вот то что идет до конца.
Количество "правильных" посылок, зависит от кол-ва строк в FIFO, чем больше ставлю, тем дольше правильно работает. Видимо косяк как-то связан с переполнением FIFO.
А как вообще такой момент эффективно контролировать? Бывали ли у кого нибудь такие проблемы? Или сталкивались может с какими-то типичными решениями в таких ситуациях?
Заранее спасибо за помощь!

Re: Адский девайс. Серия вопросов.

Пт сен 30, 2016 19:33:13

Meteor писал(а):А потом раз - и начинается вот то что идет до конца.
Количество "правильных" посылок, зависит от кол-ва строк в FIFO, чем больше ставлю, тем дольше правильно работает. Видимо косяк как-то связан с переполнением FIFO.
А как вообще такой момент эффективно контролировать? Бывали ли у кого нибудь такие проблемы? Или сталкивались может с какими-то типичными решениями в таких ситуациях?

Да были, куда без них то?!
Ситуация когда после определенного количества вычиток, данные зависают в одном состоянии связана с тем, что фифо опустело, а не переполнилось.
Для корректной работы, нужно смотреть на состояние сигнала rdempty (или подобный) как только этот сигнал принимает значение 1, это означает что в фифо остался последний байт (если ширина 8 бит) и нужно прекращать чтение.
Ответить