FPGA, VHDL, странное явление
Jun. 21st, 2012 06:25 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
В схеме есть некий процесс, в зависимости от состояния флагов инкрементирующий-декрементирующий некий счётчик по каждому тактовому импульсу. Микроконтроллер, сидящий на той же плате рядом с ПЛИС, может считать состояние этого счётчика и поиграть флажками. Я даж понял и победил глюк, когда вместо ожидаемого числа считывалось что-то иное -- счётчик 16-битный, а микроконтроллер 8-битный, соотв. любая транзакция занимает как минимум два цикла (с т.з. микроконтроллера ПЛИС выглядит как асинхронная память, внутри же ПЛИС модули соединены по синхронной шине Wishbone), поэтому вероятны ситуации, когда я считал один байт от предыдущего значения счётчика, а другой уже от следующего (да ещё и так, что там произошёл переход через FF). Дополнительный теневой регистр выправил ситуацию.
Но остался странный эффект - при первом запуске системы из счётчика всёравно может считаться абракадабра. Несмотря на то, что и сброс работает вполне корректно, и запись инициализирующего значения нормально проходит.. нипанятна. Эффект то есть, то нет - как его ловить, не знаю.
Но остался странный эффект - при первом запуске системы из счётчика всёравно может считаться абракадабра. Несмотря на то, что и сброс работает вполне корректно, и запись инициализирующего значения нормально проходит.. нипанятна. Эффект то есть, то нет - как его ловить, не знаю.