rw9uao 0 2 апреля, 2013 Опубликовано 2 апреля, 2013 · Жалоба вот есть у меня SRAM, доступ к которой мне нужен из трех модулей. я в каждом модуле описываю шину адреса, шину данных и управление. можно как-то весь этот текст написать один раз? я понял что можно сделать отдельный модуль для работы с СРАМ. теперь затык, я в root модуле объявляю этот модуль: sram my_sram(ADDR, DATA, ляля-тополя) а как к нему обращаться из других модулей? еще вопрос, я хочу из одного модуля в другой передать переменную или флаг, как ее описать, чтобы она не выводилась на ноги ФПГА? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rw9uao 0 3 апреля, 2013 Опубликовано 3 апреля, 2013 · Жалоба однако на электрониксе совсем перестали пинать чайников в нужное направление. пнули бы "кури гугль про parameter". module qwer(v0, v2); parameter i = 0; input v0; output reg v2; always if (i == 0) v2 = v0; else v2 = 0; endmodule module main(a1, a2, o3); input a1; output a2, o3; assign a2 = a1; qwer #(0) module1(a1, a2); qwer #(1) module2(a1, o3); endmodule вопрос конкретно такой - модуль "qwer" будет создан 1 раз или 2? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 3 апреля, 2013 Опубликовано 3 апреля, 2013 · Жалоба вопрос конкретно такой - модуль "qwer" будет создан 1 раз или 2? А вы сколько экземпляров модуля qwer создали в main? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rw9uao 0 3 апреля, 2013 Опубликовано 3 апреля, 2013 · Жалоба А вы сколько экземпляров модуля qwer создали в main? видимо два, но с разными параметрами. после С на микроконтроллерах верилог в голову трудно ложится. а в function я так понимаю портами ввода-вывода воспользоваться не удастся, да? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Raven 8 3 апреля, 2013 Опубликовано 3 апреля, 2013 · Жалоба А "покурить", как Вы выражаетесь, курс для новичков по Verilog'у не позволяет религия? Чтобы разговор как-то не совсем от печки начинать, а то проводить заочное обучение на форуме "устанет рука" :) . Например, такой (быстро, конкретно и еще правильному стилю обучают): Pong Chu, FPGA Prototyping Using Verilog Examples http://www.freebookspot.es/Comments.aspx?Element_ID=5281 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rw9uao 0 3 апреля, 2013 Опубликовано 3 апреля, 2013 · Жалоба за книжку спасибо, просто учебник по верилогу не укладывается никак. от курсов Каршенбойма хоть какое-то понимание. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 3 апреля, 2013 Опубликовано 3 апреля, 2013 · Жалоба за книжку спасибо, просто учебник по верилогу не укладывается никак. от курсов Каршенбойма хоть какое-то понимание. А не могли бы Вы мне в личку, а еще лучше на почту написать, что не понятно.. Что нужно в курс добавить... Кстати, пару дней назад я вычислил, что 5 лет назад одну часть на свой сайт не выложил. И позавчера поправил... И наверное надо еще что-то добавить... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Raven 8 3 апреля, 2013 Опубликовано 3 апреля, 2013 · Жалоба за книжку спасибо, просто учебник по верилогу не укладывается никак. от курсов Каршенбойма хоть какое-то понимание. На здоровье! Как дым от раскуривания книги немного начнет ударять в голову, и голова чтой-то не понимать будет - давай сюда ходи, вопрос называй! :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rw9uao 0 3 апреля, 2013 Опубликовано 3 апреля, 2013 · Жалоба да все вроде понятно. вот провода, вот регистры, вот гаечки. а теперь постройте космический корабль. и все-таки. вот есть модуль работы с СРАМ, я к нему хочу обращаться из 3-х мест. как это сделать? как передавать параметры между модулями и не занимать ноги ФПГА на эти параметры? например, в коде выше в модуле module qwer(v0, v2); output v2 не выводить на ноги. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rw9uao 0 3 апреля, 2013 Опубликовано 3 апреля, 2013 · Жалоба дубль Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 3 апреля, 2013 Опубликовано 3 апреля, 2013 · Жалоба и все-таки. вот есть модуль работы с СРАМ, я к нему хочу обращаться из 3-х мест. как это сделать? как передавать параметры между модулями и не занимать ноги ФПГА на эти параметры? например, в коде выше в модуле module qwer(v0, v2); output v2 не выводить на ноги. Если одновременно, то делайте 3-х портовую память. Если не одновременно, то на вход памяти - мультиплексор. И арбитр доступа к памяти... Это даст 3 шины адрес+данные в память, данные из памяти в параллель ко всем трем модулям. Ну и входы-выходы арбитров разведете обычным образом... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Raven 8 3 апреля, 2013 Опубликовано 3 апреля, 2013 · Жалоба Ноги ФПГА тут пока еще вообще никак не фигурируют. А для соединений модулей между собой используются внутренние переменные или сигналы (wire) модуля, в который вышеуказанные модули инстанцируются. Например, вот так: module qwer(v0, v2); parameter i = 0; input wire v0; output reg v2; always * // Для определенности пусть будет комбинационной логикой if (i == 0) v2 = v0; else v2 = 0; endmodule module main(i1, o1, o2); input wire i1; output wire o1, o2; wire int_signal_1; // Внутренний сигнал, соединяющий выход #1 со входами #2,#3 qwer #(0) module1(i1, int_signal_1); qwer #(0) module2(int_signal_1, o1); qwer #(1) module3(int_signal_1, o2); // Выход o2 будет у нас всегда в лог.0 (согласно логике модуля, для параметра i=1) endmodule И это было неясно после прочтения Каршенбойма? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться