Перейти к содержанию
    

_Ivan_

Свой
  • Постов

    617
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные _Ivan_


  1. Просто на мой взгляд это форма прокрастинации. Типа прочитал кучу книг, а толку ноль.

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

  2. Найдите книгу в интернетах Харрис и Харрис - Digital design and computer architecture - есть перевод книги на русский язык.

    Там есть 4 глава где на примерах цифровых схем есть синтаксис на верилоге и вхдл параллельно. Это вам поможет.

  3. и если честно я что то не понял.

    16 элементов массива.

    Входные данные datain входят в нулевой элемент массива который 1 байт, а остальные сдвигаются?

    Или в одном слове массива происходит прием datain со сдвигом?

  4. можно. по умолчанию все числа беззнаковые.

    но есть волшебное слово signed, пишем после reg или wire.

    Результат тоже должен быть знаковый?

    Если знаковые, то в верилоге результат, который имеет разрядность 16 бит и регистры которые имеют разрядность 8 бит приведутся к 16 бит, причем недостающие биты заполнятся нулями. Нужен sign extension(в той книге есть)

  5. shift_reg <= {shift_reg[6:0], datain} это вместо

    for(i=7; i>0; i=i-1)

    begin

    shift_reg <= shift_reg[i-1];

    end

    shift_reg[0] <= datain;

     

     

    А shift_reg в массиве знаковые или беззнаковые? И их точно 16 штук или согласно 3 сообщению 6? и массив из 16 слов по 8 бит в верилоге это reg [7:0] array[0:15];

    в общем случае это вот так по идее

    reg [15:0] dout; // в нашем случае это как провод, а не регистр

    integer i;

     

    always@*

    begin

    for(i = 0; i < 16; i = i + 1)

    begin

    dout = dout + shift_reg;

    end

    end

    но вообще это очень плохо, так как получится слишком большой сумматор из 16 ступеней что приведет к большим propogational delay скорей всего и частота работы схемы снизится

  6. sr в ветке положительного резета есть shift_reg?

     

    вторую часть можно написать элегантнее:

     

    shift_reg <= {shift_reg[6:0], datain};

    без всяких циклов.

     

    Я немного не понял, вы хотите просуммировать биты в регистре или просуммировать массив регистров?

  7. wire - это провод. Для соединения блоков и для выражения комбинационной логики.

    reg - может выражать последовательностную схему, а может комбинационную схему в зависимости от написания.

    подробнее можно прочитать тут https://habrahabr.ru/post/306982/

    <= и = это неблокирующее и блокирующее присваивание. Основное правило - первое мы применяем в последовательностной логике, а второе в комбинационной.

     

    по фронту выдачу можно организовать что-то типа такого :

    пишем цикл нужный http://www.asic-world.com/verilog/verilog_one_day2.html вот тут

    затем туда вставляем фронт (@negedge clk)

    и выдаем данные - вот тут смотрите http://www.angelfire.com/in/verilogfaq/pli.html

     

  8. Подаю rst. нет изменений, репрограю , нет имзенений, щелкаю switch кнопки(флаги) не работает.....беда. На отладочной rst от кнопки завел, чтобы проверять.

    Просто не представляю что творится. Работают только делители и пару еще простых вещел. Автомат лежит

     

    Резет от кнопки не очень хорошо. У вас может быть так, что снятие резета в произвольный момент времени способствует метастабильности всех регистров под резетом, поэтому схема не работает.

    http://www.eetimes.com/document.asp?doc_id=1278998

     

    А клок откуда подается? Идет ли он через PLL или DCM или так напрямую?

    Какая плис?

     

     

  9. Вопрос появился:

     

    Допустим у нас есть сложный sequence_item.

    А для reusable у нас сделан драйвер, который воспринимает только простые операции.

    Например есть burst на axi шине. А драйвер может только чтение или запись 1 слова.

    Преобразование сложного пакета в набор простых операций делаем в sequencer, так?

    Или есть какие то еще методы?

  10. http://www.sunburst-design.com/papers/Hunt...esets_paper.pdf

     

    в Advanced UVM эта статья скопирована

     

    Перечитал дискуссию, понял что я немного не понял Kopart

    Я сейчас речь веду про 100% transition coverage и phase jump поможет.

     

    А вот загнать это в default state увы.

    Видится только force release state_reg DUT

×
×
  • Создать...