Jump to content

    

Nieve

Участник
  • Content Count

    36
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Nieve

  • Rank
    Участник

Контакты

  • Сайт
    http://
  • ICQ
    0

Информация

  • Город
    Москва

Старые поля

  • Vkontakte
    https://vk.com/pingopongo90

Recent Profile Visitors

249 profile views
  1. Не понятен такой момент: вы получили байт по UART, зачем его переделывать на VHDL? Вы получили число, в симуляторе смотрите значение в хексе или десятке, суть задачи не ясна.
  2. ST_END_ZONE: state_zone <= ST_END_ZONE; Вы не выходите из третьего состояния.
  3. Синтезните свой проект в ISE / Vivado и САПР сам покажет кол-во используемых элементов.
  4. "частоты приблизительно равны, но асинхронны" - это уже накладывает ограничения по применению, это неправильно. FIFO должна корректно работать при абсолютно разных частотах. Зачем вообще понадобились "error" регистры? Ваша задача не в том чтобы ошибку найти, а в том, чтобы корректно записывать данные в буффер. Из любопытства: что будет если например сработал этот регистр? Смотрю с телефона, поэтому код не удобно читать.
  5. Если вы тактируете одну PLL от другой, то напрямую так делать нельзя. Либо используйте одну PLL и от нее пускайте разные клоки, либо выводите выход одной PLL наружу и заводите его на вход во вторую, обозначив его как входной тактовый сигнал.
  6. Попробуйте вывести все возможные флаги FIFO и ищите закономерномести при неправильном считывании. Все таки альторовские IP верифицированные, поэтому вряд ли глючит именно сам блок, скорее всего некая обвязка.
  7. Нет, не так. Если у Вас в схеме есть триггеры, в таком случае тактовый сигнал нужно подавать обязательно.
  8. Нет. Вы будете работать с его инстансом. Например у вас в схеме есть два порта UART, описанные одним Verilog файлом. Обращаясь к первому порту, Вы будете вызывать его например так: uart uart_inst_1 (...); Ко вторумо так: uart uart_inst_2(...); Тоесть два разных порта UART, но чтобы не добавлять в проект 2 одинаковых UART модуля используют инстансы. С FIFO все тоже самое.
  9. С пина на пин можно обойтись без тактирования. Через assign присвоить значение выходной ножки входной. P.S Если Вы в начале пути по освоению ПЛИС и Verilog, идите по простейшему пути, отложите пока двунаправленные порты.
  10. Подключайте в двух разных вызываемых модулях разные инстансы FIFO и проблем не будет. У Вас FIFO модуль создается один раз в проекте, дальше Вы работаете с его инстансами.
  11. Вопрос так и был сформулирован: надо все или только стробы? Я так понимаю что как синхронизировать ТС уже знает, если нет, то ваша ссылка будет ему очень полезна.
  12. Сигнал, сформированный по "clk_1", должен быть синхронизорован по "clk_2".
  13. Вы понимаете что написанный RTL затем синтезируется в электрическую схему, состоящую из таких логических элементов как "И", "ИЛИ", мультиплексоры, триггеры и т.д.? Так вот, стандартный D триггер работает по фронту клока, обозначенный в списке чувствительности как "posedge sck", а также реагирующий на фронт - "negedge rstb" (без учета входных данных, сигнал разрешения клока и т.д.). А теперь вопрос - во что по вашему синтезнётся "posedge ss" ? Тоесть к D триггеру нужно "приделать" еще один вход, который будет реагировать на фронт третьего сигнала. Таких элементов в ПЛИС просто нет и синтезатор должен выдать ошибку в 99.9% процентов случаев. 0.1% это похоже ваш случай, если вы не перепутали симулятор и синтезатор.
  14. Что такое 《posedge sck or negedge rstb or posedge ss 》 ? С точки зрения синтеза весьма любопытно.
  15. Привидите пример использования в одном always блоке блокирующего и неблокируюего присвоения. Не видел никогда ничего подобного, любопытно.