zombi 0 28 июля, 2020 Опубликовано 28 июля, 2020 · Жалоба 5 minutes ago, RadiatoR said: В этом случае AND не сработает и на выходе будет S А зачем мне на выходе S если AND не сработал? Если AND не сработал на выходе должно быть {5'b00000,D} А если сработал должно быть S. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RadiatoR 2 28 июля, 2020 Опубликовано 28 июля, 2020 · Жалоба точно, ошибся в последовательности A/В Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 28 июля, 2020 Опубликовано 28 июля, 2020 · Жалоба 21 minutes ago, Nick_K said: Можно записать всё в один рядок. Тогда присутствующая нечитабельность взлетит на невероятные высоты! module decode(input [14:12]D,input [7:0]S,output reg [7:0]R);assign R=&D?S:{5'h0,D}; Нормально всё читается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yuri124 4 28 июля, 2020 Опубликовано 28 июля, 2020 (изменено) · Жалоба 22 hours ago, Yuri124 said: r = (& d [14:12]) ? s : {5'b0, d[14:12]}; где wire [7:0] s, r; // или reg [7:0] s; Поскольку выход коммутатора - это wire. то нужно добавить assign; assign r = (& d [14:12]) ? s : {5'b0, d[14:12]}; 6 minutes ago, zombi said: output reg [7:0]R);R=&D?S:{5'h0,D}; не уверен, что так пойдет. Провода определяются как reg для always блоков. И еще - почему используете &d, ведь коммутатором управляют только 3 разряда d? Изменено 28 июля, 2020 пользователем Yuri124 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nick_K 0 28 июля, 2020 Опубликовано 28 июля, 2020 · Жалоба 4 minutes ago, zombi said: Нормально всё читается. На таком проекте моржет и да (и всё равно мне рагульно). А вот когда будет набор файлов под 1-2МБ, тогда я посмотрю как это прочитать) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 28 июля, 2020 Опубликовано 28 июля, 2020 · Жалоба А у меня еще вопросик назрел, как у начинающего верилого мучителя. При таких записях 5'b0 32'b0 14'h0 точно все биты будут нулями? 12 minutes ago, Yuri124 said: И еще - почему используете &d, ведь коммутатором управляют только 3 разряда d? Да у D много разрядов, но на вход модуля поступает только 3 шт. module decode(input [2:0]D,input [7:0]S,output reg[7:0]R);assign R=&D?S:{5'h0,D}; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yuri124 4 28 июля, 2020 Опубликовано 28 июля, 2020 (изменено) · Жалоба 9 minutes ago, zombi said: При таких записях 5'b0 32'b0 14'h0 точно все биты будут нулями? Да. А 5'b1 будет 5'b00001 Изменено 28 июля, 2020 пользователем Yuri124 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sergey_Bekrenyov 0 28 июля, 2020 Опубликовано 28 июля, 2020 · Жалоба 8 hours ago, zombi said: Э нет. Так не пойдёт. Если не все разряды D в единице, то в младших разрядах R должно быть D, а не 7 ! Согласен, на нотацию портов не смотрел. Привык, что нулевой порт сверху. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yuri124 4 29 июля, 2020 Опубликовано 29 июля, 2020 (изменено) · Жалоба On 7/25/2020 at 1:28 AM, zombi said: Ох уж и странный этот верилох, хош так пиши хош эдак! На верилоге можно описывать не только структуру (т.е. набор элементарных кирпичиков и связи между ними) устройства или его части, но и его поведение (или комбинировать это по необходимости и удобству). Что будет дальше происходить с сигналом r[7:0]? Допустим - он будет потом записываться в регистр при наличии разрешающего сигнала, а при необходимости - в этот регистр записывается некая начальная комбинация xxxxxxxx. Тогда можно просто описать поведение этого регистра, не вдаваясь в подробности - каким образом до него дойдут нужные сигналы. Необходимый для этого функционал компилятор добавит сам. Например: wire enable, preset, data_select; assign data_select = & d[14:12]; //дали понятное имя сигналу управления, ну и чтобы по несколько раз не писать одно и то же reg [7:0] r_registered; always @(posedge clk) if (preset == 1) r_registered <= 8'bxxxxxxxx; else begin // "скобки" begin/end просто чтобы выделить тело основной функции работы устройства if (enable == 1) if (data_select == 1) r_registered <= s; else r_registered <= {5'b0, data_select}; else ; // не обязательно end Всё - не нужно описывать явно коммутатор и его подключение, упрощаются дебри описания устройства, более понятен принцип его работы. Коммутатор явно не указан, но подразумевается в третьем if/else - компилятор его добавит сам. Изменено 29 июля, 2020 пользователем Yuri124 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 29 июля, 2020 Опубликовано 29 июля, 2020 · Жалоба Ну прям Pascal. Постоянно забываю ; ставить в конце строк ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrGalaxy 9 29 июля, 2020 Опубликовано 29 июля, 2020 · Жалоба 5 минут назад, zombi сказал: Ну прям Pascal. Постоянно забываю ; ставить в конце строк ... Так ведь и в VHDL надо точки с запятой ставить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 29 июля, 2020 Опубликовано 29 июля, 2020 · Жалоба Я только пару дней как начал verilog изучать. Но удобство и лаконичность оного успел оценить! Никакими HDLями до этого не пользовался. Всё квадратиками и треугольничками на блок-схеме малевал. Ибо всё это плис-проектирование и вообще схемотехника далекооо не главное, я бы сказал : не более 5% важности от общей задачи. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 16 29 июля, 2020 Опубликовано 29 июля, 2020 · Жалоба 2 часа назад, zombi сказал: Ну прям Pascal. Дадада, а нам простоянно рассказывают сказки, что Верилог на Си похож. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RadiatoR 2 29 июля, 2020 Опубликовано 29 июля, 2020 · Жалоба 30 minutes ago, andrew_b said: Верилог на Си похож Если бы были структуры и {} вместо begin/end было бы просто восхитительно! А так почти.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 29 июля, 2020 Опубликовано 29 июля, 2020 · Жалоба Нарушение принципов KISS. Прти рефакторинге почти 90% предложенного кода я бы отправил в помойку и переписал более понятным стилем. Ещё и комментариями снабдил код.. Описывать надо не экономя пару строк кода, а чтобы было максимально понятно и просто. Ну ежели это разовая поделка - то можно писать как угодно.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться