andrew_b 17 15 апреля, 2019 Опубликовано 15 апреля, 2019 · Жалоба 8 минут назад, jenya7 сказал: я понял. а почему кор генерирует 6 бит? Так поняли или нет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 15 апреля, 2019 Опубликовано 15 апреля, 2019 (изменено) · Жалоба 1 hour ago, andrew_b said: Так поняли или нет? почему 6 бит не понял. Изменено 15 апреля, 2019 пользователем jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 15 апреля, 2019 Опубликовано 15 апреля, 2019 · Жалоба 1 minute ago, jenya7 said: почему 6 бит не понял. full это старший бит счётчика количества слов в фифо, он выдаётся отдельно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 15 апреля, 2019 Опубликовано 15 апреля, 2019 (изменено) · Жалоба 1 hour ago, des00 said: full это старший бит счётчика количества слов в фифо, он выдаётся отдельно. но количество сообщений в ФИФО я читаю из usedw. а если usedw : out std_logic_vector (5 DOWNTO 0) он мне не выдаст 64. почему (5 DOWNTO 0) ? то есть мне надо изменить алгоритм чтения ФИФО? вместо if (size == 0) { if (status_rx_fifo & RX_FIFO_FULL_MASK) { //dummy read to resolve fifo_full = 1 issue SPI_can_rd(rd_opcode, 0, g_buff_in, 14); } return 0; } else { while (size > 0) { mailbox_save_to_struct(mcp_num, 0); size--; } } сделать if (size == 0) { if (status_rx_fifo & RX_FIFO_FULL_MASK) { //dummy read to resolve fifo_full = 1 issue SPI_can_rd(rd_opcode, 0, g_buff_in, 14); } return 0; } else { //to fix usedw 6 bit if (status_rx_fifo & RX_FIFO_FULL_MASK) size = 64; while (size > 0) { mailbox_save_to_struct(num, 0); size--; } } Изменено 15 апреля, 2019 пользователем jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 15 апреля, 2019 Опубликовано 15 апреля, 2019 · Жалоба Вам надо перестать кодить в слепую, взять ручку, тетрадь, книгу по компьютерному представлению чисел и расписать что происходит с фифо и его сигналами, на ваших разрядностях и в вашем случае. В итоге выведете формулу, как, в вашем случае, перейти от сигналов фифо, сгенерированной корки, к настоящему количеству слов в фифо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 15 апреля, 2019 Опубликовано 15 апреля, 2019 (изменено) · Жалоба 1 hour ago, des00 said: Вам надо перестать кодить в слепую, взять ручку, тетрадь, книгу по компьютерному представлению чисел и расписать что происходит с фифо и его сигналами, на ваших разрядностях и в вашем случае. В итоге выведете формулу, как, в вашем случае, перейти от сигналов фифо, сгенерированной корки, к настоящему количеству слов в фифо можно конечно и так rx_fifo_size <= rx_fifo_full & rx_fifo_usedw; я бы даже сказал - нужно так :), раз корка выделила MSB бит в качестае флага full. Изменено 15 апреля, 2019 пользователем jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться