arcer 0 3 мая, 2010 Опубликовано 3 мая, 2010 · Жалоба Я был и есть сишник. Посему для ПЛИСов решил изучать верилог. Серия вопросов на понимание: 1) Что такое тип wire, Поляков его упоминает и дает примеры использования, но что это физически? 2) Чем отличаются физически integer и reg [0:31]? 3) операции +-*/ работают для регистров любой длины. Значит ли это, что они есть макросы и их можно безущербно заменить на кустарную функцию соответствующих операция, выполненую через битовые операции? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Des333 0 3 мая, 2010 Опубликовано 3 мая, 2010 · Жалоба Вы начните с нормального названия темы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 3 мая, 2010 Опубликовано 3 мая, 2010 · Жалоба Ответы на все ваши вопросы находятся в стандарте IEEE Std 1800 - 2009 IEEE Standard for SystemVerilog— Unified Hardware Design, Specification, and Verification Language Я тоже не сразу "распробовал" этот документ, но общение на форуме наставило меня на путь истины! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
glock17 0 4 мая, 2010 Опубликовано 4 мая, 2010 · Жалоба Я был и есть сишник. Посему для ПЛИСов решил изучать верилог. Серия вопросов на понимание: 1) Что такое тип wire, Поляков его упоминает и дает примеры использования, но что это физически? Физически wire есть элемент соединения блоков между собой. По аналогии с печатной платой wire - это дорожка на плате. 2) Чем отличаются физически integer и reg [0:31]? тем, что integer представляет собой 32-х разрядный регистр для хранения числа со знаком. Грубо говоря тип integer эквивалентен типу reg signed [31:0]. 3) операции +-*/ работают для регистров любой длины. Значит ли это, что они есть макросы и их можно безущербно заменить на кустарную функцию соответствующих операция, выполненую через битовые операции? заменить можно, но не всегда без ущерба. В случае с FPGA умножение/деление выполняется готовыми встроенными умножителями, поэтому менять эти операции на кустарные функции особого смысла нет (окончательный ответ вам даст синтезатор и анализ таймингов). PS: объяснения максимально краткие и не освобождают вас от изучения стандартов :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CaPpuCcino 0 4 мая, 2010 Опубликовано 4 мая, 2010 · Жалоба PS: объяснения максимально краткие и не освобождают вас от изучения стандартов сколь максимально краткое, столь по существу и неверное. но для начала междусобойчика пойдёт. посмотрим, что скажет стая (с) зы: топикстартеру советую обратить внимание на ответ №1 + воспользоваться поиском по форуму. вопросы 1,2 обсасывались мильён раз. 3 - наводящий вопрос: а в общем случае на какие именно макросы вы собираетесь их менять? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Djony1987 0 4 мая, 2010 Опубликовано 4 мая, 2010 · Жалоба 1) Что такое тип wire, Поляков его упоминает и дает примеры использования, но что это физически? Как и было замечено - это элемент соеденения между блоками. Также использвуется только в комбинационной логике. Не последовательной. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Koluchiy 0 4 мая, 2010 Опубликовано 4 мая, 2010 · Жалоба Вот есть такая же тема. Советы там подойдут и для текущего случая. http://electronix.ru/forum/index.php?showtopic=75598 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
arcer 0 4 мая, 2010 Опубликовано 4 мая, 2010 · Жалоба наводящий вопрос: а в общем случае на какие именно макросы вы собираетесь их менять? Нет, менять на свои функции - глупо. Просто меня смутило сходство этих операций со стандартными интеловскими коммандами, что может и там есть жесткое ограничения на длину регистра. Вроде как в С++ тип , bool, хоть и звется битом, для хранения требует целый байт. :unsure: Ответы на все ваши вопросы находятся в стандарте IEEE Std 1800 - 2009 IEEE Standard for SystemVerilog— Unified Hardware Design, Specification, and Verification Language А не могли бы Вы, если он где-то под рукой, кинуть сюда. На форуме он есть в шапке, но не открывается, в гуглотеке всё либо несуществующая страница либо ссылки на платные репозитории. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 4 мая, 2010 Опубликовано 4 мая, 2010 · Жалоба А не могли бы Вы, если он где-то под рукой, кинуть сюда. На форуме он есть в шапке, но не открывается, в гуглотеке всё либо несуществующая страница либо ссылки на платные репозитории. В свое время я находил более старые версии стандарта в Интернете. Размер данного файла 11.5 MB, он сюда не прилепится. Да и правилами форума это, наверное, запрещено. Пообщаетесь здесь, наберете нужное количество сообщений, и вам откроются "закрома". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Methane 0 4 мая, 2010 Опубликовано 4 мая, 2010 · Жалоба Та просто в гугл задавайте вопросы, и найдете ответы на все ответы. Верилог, не язык программирования. Это язык описания. Вы описываете регистр. Логично что вы сразу же и задаете какой он длинны. Нужно 8 бит, будет 8. Нужно 48, будет 48. Просто командой умножения можно пользоваться. Но строго говоря, непонятно что в результате синтезатор сгенерит. Он может использовать как и аппаратный умножитель так и сгенерить это на логических элекментах. Гораздо лушче пользоваться специальным визардом, где можно задать разрядность, тип итд. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 8 4 мая, 2010 Опубликовано 4 мая, 2010 · Жалоба Я был и есть сишник. Посему для ПЛИСов решил изучать верилог. Серия вопросов на понимание: 1) Что такое тип wire, Поляков его упоминает и дает примеры использования, но что это физически? 2) Чем отличаются физически integer и reg [0:31]? 3) операции +-*/ работают для регистров любой длины. Значит ли это, что они есть макросы и их можно безущербно заменить на кустарную функцию соответствующих операция, выполненую через битовые операции? в дополнение 1) используйте/изучайте system verilog (если используете ПЛИС Xilinx c ISE/XST - то нужно дополнительный синтезатор: Synplify, Precision etc) - там есть универсальный тип logic (а чтоб вообще не заморачиваться bit) 2) --/-- там есть int === reg[31:0], и byte и т.д. 3) в отличие от С компилятора, результат синтеза по HDL-описанию не является детерминированным, а выходом оптимизируещего/перебирающего алгоритма. поэтому чем проще/стандартнее опишите конструкцию, тем лучших результатов добъетесь тут еще возникает вопрос "синтезируемого подмножества" и coding style - это ищите, каждый второй вопрос начинающих об этом Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Methane 0 4 мая, 2010 Опубликовано 4 мая, 2010 · Жалоба используйте/изучайте system verilog (если используете ПЛИС Xilinx c ISE/XST - то нужно дополнительный синтезатор: Synplify, Precision etc) А нафига? Меня лично полностью альтеровский устраивает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Des333 0 4 мая, 2010 Опубликовано 4 мая, 2010 · Жалоба А нафига? Меня лично полностью альтеровский устраивает. Там же, вроде, написано :) используйте/изучайте system verilog (если используете ПЛИС Xilinx c ISE/XST - то нужно дополнительный синтезатор: Synplify, Precision etc) - там есть универсальный тип logic (а чтоб вообще не заморачиваться bit) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться