-
Постов
1 951 -
Зарегистрирован
-
Посещение
Весь контент CaPpuCcino
-
В чем отладить SV модуль
CaPpuCcino ответил iiv тема в Среды разработки - обсуждаем САПРы
попробуйте и нам расскажите, т.к. OpenCL должен скорее всего транслироваться в промежуточное представление на одном из HDL, где вопросы битового представления можно править пользователю. если они заявляли о поддержке, значит должны и средства отладки представлять, иначе это не смешно. ЗЫ: думаю, что всё-таки не стоит пользоваться самоляпными средами моделирования. подозреваю, что уровень поддержки языка достаточно низкий. -
В чем отладить SV модуль
CaPpuCcino ответил iiv тема в Среды разработки - обсуждаем САПРы
))) не, они наконец-то сподобились, правда за денежку(синтез Вивадо). не прошло и 10 лет ))) -
В чем отладить SV модуль
CaPpuCcino ответил iiv тема в Среды разработки - обсуждаем САПРы
о каких проблемах, заставляющих использовать V, идёт речь? кстати, официальная позиция комитета состоит в том, что V уже не существует. альтера вроде заявляла о поддержке openCL, не пробовали этим воспользоваться? -
надеюсь эта ссылка обрадует большее количество людей (пока работает) http://avaxho.me/ebooks/engeneering_techno...470054379R.html
-
в верилоге доступны иерархические ссылки из любого уровня иерархии проекта (акромя синтеза) => загрузить их можно обычным присваиванием значений блок.подблок.подблок.регистр=значение;
-
попробуйте конструкцию let, если нужно что-то большее чем определение константы
-
условная рандомизация я бы сказал, область применения настолько широка, что ограничена только нашим воображением :) всё что вы можете хотя бы чуть-чуть отличить от белого шума можно законстрейнить в условные псевдослучайные последовательности (зы: последовательность команд машинного кода процессора на самом деле тоже имеет набор шаблонов хотя и достаточно широкий)
-
для дизайна: сплошная параметризиция (через классы) в т.ч. функций, структур и более сложных агрегатов, перегрузка функций см.ниже. ну, а так беглый просмотр оглавления позволяет понять, что нового в стандарте. даж не знаю что выделить. м.б. виртуальные интерфейсы и интерфейсные классы (сильный сдвиг в ООП) см.ниже: перегрузка функций - моя не совсем понимать. на мой взгляд "условный" механизм перегрузки реализуется с помощью типизируемых виртуальных классов (инстанс класса не нужен, только оператор пространства class::method ). на мой взгляд это немного надёжней при написании кода, чем пользоваться автоматическим приведением под сигнатуру функции (тем более верилог не строго типизирован). по крайне мере мне сразу в голову не приходит какой-нить яркий пример существенного выигрыша от реального механизма перегрузки функции при наличие механизма перегрузки операции и сплошной темплетизации. дай, Денис, пример, плз. здесь немного другая логика. фокус в том, что стандарт не разрабатывался в катакомбах закрытого общества куклусклан и не явился на свет в одночасье (вы не ждали, а мы припёрлись). за процессом можно было следить и даже участвовать. если посмотреть на список разрабов, можно понять, что стандарт не мог быть сюрпризом для производителей САПР (это было бы вообще странно предположить). на счёт Альтеры не скажу, а ведущие САПРодиллеры уже готовились к появлению новых фич заранее. я, например, спрашивал очно у синопсиса 2,5 года назад, готовы ли они синтезировать классы для поддержания параметризируемых функций. ответ был утвердительным. так что в ведущих продуктах можно ожидать главных фич либо в ближайшем релизе, либо в сл. (осенью). это относительно синтеза. относительно моделирования, уверен, что апдейт по стандарту будет в ближайшем.
-
Accelera открыла SV-2012
CaPpuCcino опубликовал тема в Языки проектирования на ПЛИС (FPGA)
Вышел новый стандарт SystemVerilog 2012 (IEEE Std. P1800-2012). Асселера сделала его свободным (наконец-то догадались). Загрузка по ссылке: http://standards.ieee.org/getieee/1800/dow...d/1800-2012.pdf -
1)был. 2)к тому времени синтез с СистемЦ уже завернули, поэтому для синтеза пришлось переводить всё в Верилог. 3)зависит от задачи. проект для одного ПЛИС делать по-моему так не стоит - пишите сразу на VHDL/SV. если нужно изучить действительно _систему_ разнородную на высоком уровне, то стоит. по крайне мере я именно СистемЦ собираюсь пользовать для оценки реализуемости одной системки с разными аппаратными раелизациями. 4)не знаю таких. может в Катапульте от ментора есть приблуды для визуализации. 5)можно делать mixed-language modelling. только для моделирования всяких там микросхем памяти используется не РТЛ а поведенческое описание. о синтезе с СистемЦ давно ничего не слышал. последние сведения, что его вроде бы вернули в Катапульт (так было написано в брошюре от ментора - что там на самом деле не знаю)
-
ну так в котором объявлен же а не к которому подключен. модпорты это спецификация того как видятся сигналы из модуля в который интерфейс воткнут. модпорт (или тип подключения интерфейса) нужен для того чтобы а) задавать разграничения (constrains) направления в венике(интерфейсе) (intent) б) создавать алиас (синоним) сигнала способствующий пониманию его функции для конкретного типа подключения (как раз добавление тех самых буковок i или o или bi) в) определять набор доступных функций интерфейса данного подключения (intent и IP hiding/incapsulation) - прямая аналогия виртуального класса, описывающего интерфейс в ООП а когда у вас веник не воткнут в модуль, а лежит поперёк модуля, то какие же тут направления (направления всегда относительно чего-то) пожалуйста
-
ну если мне память не изменяет, то модпорт не является инстансом, а является спецификатором. по существу это аналог класса интерфейса в ООП. специфицирует он то как тот или иной модуль видит ваш интерфейс. отсюда 1) modport не является иерархической ссылкой 2) на качество данных в интерфейсе никак не влияет то из какого модпорта вы на них смотрите, а только влияет на то что вам с ними разрешено делать (такой своеобразный констрейн), 3) поэтому смысла обращаться к данным через их какое-либо представление по средствам модпортов из топа а) нет никакой необходимости б) строго говоря не правильно (т.е. Ква делает это неправомочно, а вот моделсим прав) зачем вам с практической точки зрения такая акробатика?
-
"Общение"
CaPpuCcino ответил тема в Новости и обсуждения сайта и форума
голосую против. всегда считал, что данный раздел привносит разлад среди участников форума, который также сказывается на общение на проф. темы. -
проект старый. всё никак не доходят руки его до продукта довести. ZBT_SRAM_controller.rar
-
у мну например цейтнот последние полгода. скоро разберусь уже с делами и буду вывешивать - есть достаточно разных мелких полезностей. так что никто не забыт и ничто не забыто. просто временно отложено.
-
могу подкинуть один простенький контроллерчик для NoBL SRAM реализующий интерфейс рукопожатия (рукопожатие полностью двустороннее как по адресу, так и по данным), принцип передачи оконный (пока выставлен фреймовый сигнал, передача продолжается по следующим адресам). простенький потому что а) не реализовано маскирование данных при записи (но это легко докрутить) и нет перехода в энергосберегающий режим (кажись, но точно не помню). хоть интерфейс и не тот что нужен, но думаю интерфейс достаточно гибкий, чтобы его докрутить до нужной задачи.
-
на это я пойтить не могу! в реальном проекте иерархия типов намного сложнее (до 5-6 уровней). если б было бы так просто как в примере, я конечно особо не горевал бы. пока, где нашёл заменил на явное присваивание через циклы. но проект огромный и расставлять костыли везде ток из-за ср....х румын оутсорсеров я не стану. сижу на старой версии Квесты.
-
спасибо. эту картинку знаю, но ситуация там описанная отличается однообразным убеганием индексов в пакованных размерностях. нужно именно формальное описание из стандарта (как должно быть по логике вещей я знаю)
-
ага сразу туда и полез, но как-то не заметил где определено правило паковки многомерных массивов с противоположными типами убегания индекса. если знаете где, ткните, плз, конкретно в страницу
-
вот и по моим тоже, а по представлению ментор графикс в последних версиях квестасима, видимо нет (начиная с версии 6.5е). у них в последних версиях вообще какая-то беда(10.0а я даже копать боюсь - там очевидно косяк в планировщике событий), но об этом в отдельной ветке, когда напишу им очередное послание. в книжке этого я не видел - там пример с размерностью [3:0] [7:0] (однако, книжка всё-таки не стандарт - на неё не сошлёшься при апелляции ). ЗЫ: да это наверное не приведение типа, но как точно назвать я не знаю, поэтому не могу сообразить в каком разделе стандарта смотреть
-
диар олл, подскажите пожалуйста по приведению типов. есть следующая комбинация типов: typedef bit [7:0] byte_type_vt; typedef bit [31:0] memory_word_vt; typedef union packed { byte_type_vt [0:3] byte_view;//ахтунг - реверсивный порядок memory_word_vt memory_word_view; }mem_word_ut; mem_word_ut bit_vec_32; memory_word_vt a; вопрос. как будут располагаться биты каждого байта, если смотреть на них как на 32-битное слово, т.е. a=bit_vec_32.memory_word_view; вопрос в общем-то кажется простым, но я не могу найти это в стандарте, если кто помнит где это описато, плз, подскажите. ЗЫ: фишка в том, что как я тут недавно обнаружил, Квеста, начиная с версий позже начала 2010г., имеет на это приведение несколько иной взгляд чем я. те модели что работали норм, на предыдущих версиях больше правильно не работают. вот я и думаю, это из-за нарушения стандарта или из-за неопределенности в нём. спб
-
параметризация модуля
CaPpuCcino ответил Костян тема в Языки проектирования на ПЛИС (FPGA)
ток параметр впереди не забудьте, потому что это переменная времени компиляции -
блин, други, я чичас чуть не поседел! ВНИМАНИЕ! выложенное фифо содержит ошибку!!! ошибка в неправильном расчёте ширины счётчиков при помощи стандартной функции $clog2() раньше два параметра рассчитывались с помощью самописной функции localparam ptr_width=number_of_bits_for_value_representation(stack_depth-1); localparam cnt_width=number_of_bits_for_value_representation(stack_depth); вот эта функция function int number_of_bits_for_value_representation(input int value); int temp; temp = 2; number_of_bits_for_value_representation = 1; while (temp<=value) begin number_of_bits_for_value_representation = number_of_bits_for_value_representation+1; temp = temp*2; end endfunction перед отправкой на форум я решил выпендриться и заменил расчёт этих параметров на localparam ptr_width=$clog2(stack_depth-1); localparam cnt_width=$clog2(stack_depth); и не проверив работу в симуляторе и не подумав о том, что результат будет уже другой - ширина для cnt_width на один бит меньше, чем положено представляете мои ощущения, когда я в четверг запустил систему, которая была полностью отлажена и которую я не трогал пол года. 2 дня сидел разбирался почему система перестала корректно работать. в общем звиняйте итого. чтобы правильно работало с $clog2 нужно написать вот так localparam ptr_width=$clog2(stack_depth); localparam cnt_width=$clog2(stack_depth+1); попрошу модератора, чтобы исправил исходный пост. файл с изменениями: Ring_Buffer_gnt_forward_fwft_ram_based.txt
-
вот здесь http://electronix.ru/forum/index.php?showt...st&p=818389 они над этим работают http://www.eda.org/svdb/view.php?id=1350
-
не знаю. уровень архитектуры как минимум предпочитаю описывать явно, не доверяя автоматизации.