Важная информация

User Tag List

Страница 168 из 191 ПерваяПервая ... 164165166167168169170171172 ... ПоследняяПоследняя
Показано с 1,671 по 1,680 из 1901

Тема: ПЛИС и всё что с ними связано

  1. #1671
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,428
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    606
    Поблагодарили
    450 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну тогда в кейсах ты можешь использовать и именованные константы, тогда вообще по феншую читабельности и самокомментирования будет. Но не забывай, что даже в кейсе действует правило begin/end для множественных команд, но так же работает правило множественных состояний (несколько констант на 1 блок), как в С.

  2. Этот пользователь поблагодарил HardWareMan за это полезное сообщение:

    JV-Soft (04.11.2019)

  3. #1672
    Activist Аватар для SegaBoy
    Регистрация
    12.11.2009
    Адрес
    Москва
    Сообщений
    390
    Спасибо Благодарностей отдано 
    38
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    59 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от JV-Soft Посмотреть сообщение
    Пофиг , я не программист я любитель , количество букв меньше , уже приятнее для глаз. Учитывая что про верилог я ещё недавно вообще и не слышал.
    Если речь про меньше букв, то изначальный код без кейсов так же можно свести всего к двум строчкам и begin/end не нужны.
    Код:
    if (mux_switch) ma[11:0] <= {2'b0,A[10:1]};
    else            ma[11:0] <= A[22:11];

  4. Эти 2 пользователя(ей) поблагодарили SegaBoy за это полезное сообщение:

    HardWareMan (04.11.2019), JV-Soft (04.11.2019)

  5. #1673
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,428
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    606
    Поблагодарили
    450 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот именно. При этом, соберется нормальная бинарная схема без излишков.

  6. #1674
    Master
    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    608
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А скажите, вот так считается нормально, или фу?
    Код:
    always @(*)
    begin
       // вся комбинаторика
    end
    
    always @(posedge clk)
    begin
       // в регистры пишем выходы комбинаторики
    end
    Сейчас сам не могу врубиться что у меня на каком такте происходит и как это описать. Так, вроде, проще.

  7. #1675
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,428
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    606
    Поблагодарили
    450 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Прямую комбинаторику не обязательно оборачивать в always блок. Достаточно описать каждый сигнал через assign. Но то, что такие вещи надо группировать - это правильная идея. Где это может быть полезно? Ну, например, если тебе надо в синхронный триггер загружать выход мультиплексора. Мультиплексор проще и понятнее всего описывается в комбинаторике и формирует сигнал типа wire, который ты и присваиваешь синхронному триггеру. Заметно читаемее чем описание мультиплексора внутри always блока. И в RTL он будет таким, как если бы был в обычной схеме.

  8. Этот пользователь поблагодарил HardWareMan за это полезное сообщение:

    Bolt (05.11.2019)

  9. #1676
    Master
    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    608
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Значит я на правильном пути.
    Описываю в always из-за сложной и до конца ещё не продуманной логики. Для эксперимента проще налепить if-ов, потом распутывать, если заработает как надо.
    Тяжело после ассемблера мозги в сторону HDL разворачивать. Уже и на бумаге схемы рисую, всё равно в тактах путаюсь, что будет происходить до фронта, и что после. А если ещё учесть то, что схема должна работать на упреждение, как бы предсказывая что будет на следующем такте... брррр

  10. #1677
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,428
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    606
    Поблагодарили
    450 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Bolt, всегда смотри в RTL.

  11. #1678
    Master
    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    608
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    И в RTL смотрю, и в post-map/post-fit, и даже в timing analyzer наносекуды считаю.

    А как описать двухпортовую память с портами разной ширины? Сейчас у меня она описана как две 8-битных с выбором по младшему биту адреса, а запись с 16-битного порта выполняется побайтно во второй порт обеих. На выходе получается мультиплексор для данных, а это лишние наносекунды. Вроде это есть аппаратно, но добиться в RTL желаемого результата так и не смог.

  12. #1679
    Master
    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    608
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Разобрался почему не получалось, я слишком много хотел от блока M9K, он такое не умеет. Один порт может одновременно или читать, или писать, а в режиме "simple dual port", в котором можно в одном такте и читать, и писать, просто используются оба порта.

  13. #1680
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,428
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    606
    Поблагодарили
    450 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Bolt, такие вещи обычно в букваре описаны, стало быть там их и надо искать изначально.

Страница 168 из 191 ПерваяПервая ... 164165166167168169170171172 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. ДВК (и всё, что с ними связано)
    от Grand в разделе ДВК, УКНЦ
    Ответов: 4539
    Последнее: 25.05.2024, 14:25
  2. Ответов: 1187
    Последнее: 22.12.2023, 20:53
  3. PAL/GAL и все что с ними связано.
    от Mick в разделе Клоны на ПЛИС, МК и БМК
    Ответов: 487
    Последнее: 01.12.2023, 00:30
  4. SMUC на дискретах и ПЛИС
    от spensor в разделе Scorpion
    Ответов: 844
    Последнее: 15.05.2023, 12:31
  5. Вопрос по ПЛИС
    от Zloy в разделе Несортированное железо
    Ответов: 23
    Последнее: 17.10.2015, 17:12

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •