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

CaPpuCcino

Свой
  • Постов

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

  • Посещение

Весь контент CaPpuCcino


  1. попробуйте и нам расскажите, т.к. OpenCL должен скорее всего транслироваться в промежуточное представление на одном из HDL, где вопросы битового представления можно править пользователю. если они заявляли о поддержке, значит должны и средства отладки представлять, иначе это не смешно. ЗЫ: думаю, что всё-таки не стоит пользоваться самоляпными средами моделирования. подозреваю, что уровень поддержки языка достаточно низкий.
  2. ))) не, они наконец-то сподобились, правда за денежку(синтез Вивадо). не прошло и 10 лет )))
  3. о каких проблемах, заставляющих использовать V, идёт речь? кстати, официальная позиция комитета состоит в том, что V уже не существует. альтера вроде заявляла о поддержке openCL, не пробовали этим воспользоваться?
  4. надеюсь эта ссылка обрадует большее количество людей (пока работает) http://avaxho.me/ebooks/engeneering_techno...470054379R.html
  5. в верилоге доступны иерархические ссылки из любого уровня иерархии проекта (акромя синтеза) => загрузить их можно обычным присваиванием значений блок.подблок.подблок.регистр=значение;
  6. попробуйте конструкцию let, если нужно что-то большее чем определение константы
  7. условная рандомизация я бы сказал, область применения настолько широка, что ограничена только нашим воображением :) всё что вы можете хотя бы чуть-чуть отличить от белого шума можно законстрейнить в условные псевдослучайные последовательности (зы: последовательность команд машинного кода процессора на самом деле тоже имеет набор шаблонов хотя и достаточно широкий)
  8. для дизайна: сплошная параметризиция (через классы) в т.ч. функций, структур и более сложных агрегатов, перегрузка функций см.ниже. ну, а так беглый просмотр оглавления позволяет понять, что нового в стандарте. даж не знаю что выделить. м.б. виртуальные интерфейсы и интерфейсные классы (сильный сдвиг в ООП) см.ниже: перегрузка функций - моя не совсем понимать. на мой взгляд "условный" механизм перегрузки реализуется с помощью типизируемых виртуальных классов (инстанс класса не нужен, только оператор пространства class::method ). на мой взгляд это немного надёжней при написании кода, чем пользоваться автоматическим приведением под сигнатуру функции (тем более верилог не строго типизирован). по крайне мере мне сразу в голову не приходит какой-нить яркий пример существенного выигрыша от реального механизма перегрузки функции при наличие механизма перегрузки операции и сплошной темплетизации. дай, Денис, пример, плз. здесь немного другая логика. фокус в том, что стандарт не разрабатывался в катакомбах закрытого общества куклусклан и не явился на свет в одночасье (вы не ждали, а мы припёрлись). за процессом можно было следить и даже участвовать. если посмотреть на список разрабов, можно понять, что стандарт не мог быть сюрпризом для производителей САПР (это было бы вообще странно предположить). на счёт Альтеры не скажу, а ведущие САПРодиллеры уже готовились к появлению новых фич заранее. я, например, спрашивал очно у синопсиса 2,5 года назад, готовы ли они синтезировать классы для поддержания параметризируемых функций. ответ был утвердительным. так что в ведущих продуктах можно ожидать главных фич либо в ближайшем релизе, либо в сл. (осенью). это относительно синтеза. относительно моделирования, уверен, что апдейт по стандарту будет в ближайшем.
  9. Вышел новый стандарт SystemVerilog 2012 (IEEE Std. P1800-2012). Асселера сделала его свободным (наконец-то догадались). Загрузка по ссылке: http://standards.ieee.org/getieee/1800/dow...d/1800-2012.pdf
  10. 1)был. 2)к тому времени синтез с СистемЦ уже завернули, поэтому для синтеза пришлось переводить всё в Верилог. 3)зависит от задачи. проект для одного ПЛИС делать по-моему так не стоит - пишите сразу на VHDL/SV. если нужно изучить действительно _систему_ разнородную на высоком уровне, то стоит. по крайне мере я именно СистемЦ собираюсь пользовать для оценки реализуемости одной системки с разными аппаратными раелизациями. 4)не знаю таких. может в Катапульте от ментора есть приблуды для визуализации. 5)можно делать mixed-language modelling. только для моделирования всяких там микросхем памяти используется не РТЛ а поведенческое описание. о синтезе с СистемЦ давно ничего не слышал. последние сведения, что его вроде бы вернули в Катапульт (так было написано в брошюре от ментора - что там на самом деле не знаю)
  11. ну так в котором объявлен же а не к которому подключен. модпорты это спецификация того как видятся сигналы из модуля в который интерфейс воткнут. модпорт (или тип подключения интерфейса) нужен для того чтобы а) задавать разграничения (constrains) направления в венике(интерфейсе) (intent) б) создавать алиас (синоним) сигнала способствующий пониманию его функции для конкретного типа подключения (как раз добавление тех самых буковок i или o или bi) в) определять набор доступных функций интерфейса данного подключения (intent и IP hiding/incapsulation) - прямая аналогия виртуального класса, описывающего интерфейс в ООП а когда у вас веник не воткнут в модуль, а лежит поперёк модуля, то какие же тут направления (направления всегда относительно чего-то) пожалуйста
  12. ну если мне память не изменяет, то модпорт не является инстансом, а является спецификатором. по существу это аналог класса интерфейса в ООП. специфицирует он то как тот или иной модуль видит ваш интерфейс. отсюда 1) modport не является иерархической ссылкой 2) на качество данных в интерфейсе никак не влияет то из какого модпорта вы на них смотрите, а только влияет на то что вам с ними разрешено делать (такой своеобразный констрейн), 3) поэтому смысла обращаться к данным через их какое-либо представление по средствам модпортов из топа а) нет никакой необходимости б) строго говоря не правильно (т.е. Ква делает это неправомочно, а вот моделсим прав) зачем вам с практической точки зрения такая акробатика?
  13. голосую против. всегда считал, что данный раздел привносит разлад среди участников форума, который также сказывается на общение на проф. темы.
  14. проект старый. всё никак не доходят руки его до продукта довести. ZBT_SRAM_controller.rar
  15. у мну например цейтнот последние полгода. скоро разберусь уже с делами и буду вывешивать - есть достаточно разных мелких полезностей. так что никто не забыт и ничто не забыто. просто временно отложено.
  16. могу подкинуть один простенький контроллерчик для NoBL SRAM реализующий интерфейс рукопожатия (рукопожатие полностью двустороннее как по адресу, так и по данным), принцип передачи оконный (пока выставлен фреймовый сигнал, передача продолжается по следующим адресам). простенький потому что а) не реализовано маскирование данных при записи (но это легко докрутить) и нет перехода в энергосберегающий режим (кажись, но точно не помню). хоть интерфейс и не тот что нужен, но думаю интерфейс достаточно гибкий, чтобы его докрутить до нужной задачи.
  17. на это я пойтить не могу! в реальном проекте иерархия типов намного сложнее (до 5-6 уровней). если б было бы так просто как в примере, я конечно особо не горевал бы. пока, где нашёл заменил на явное присваивание через циклы. но проект огромный и расставлять костыли везде ток из-за ср....х румын оутсорсеров я не стану. сижу на старой версии Квесты.
  18. спасибо. эту картинку знаю, но ситуация там описанная отличается однообразным убеганием индексов в пакованных размерностях. нужно именно формальное описание из стандарта (как должно быть по логике вещей я знаю)
  19. ага сразу туда и полез, но как-то не заметил где определено правило паковки многомерных массивов с противоположными типами убегания индекса. если знаете где, ткните, плз, конкретно в страницу
  20. вот и по моим тоже, а по представлению ментор графикс в последних версиях квестасима, видимо нет (начиная с версии 6.5е). у них в последних версиях вообще какая-то беда(10.0а я даже копать боюсь - там очевидно косяк в планировщике событий), но об этом в отдельной ветке, когда напишу им очередное послание. в книжке этого я не видел - там пример с размерностью [3:0] [7:0] (однако, книжка всё-таки не стандарт - на неё не сошлёшься при апелляции ). ЗЫ: да это наверное не приведение типа, но как точно назвать я не знаю, поэтому не могу сообразить в каком разделе стандарта смотреть
  21. диар олл, подскажите пожалуйста по приведению типов. есть следующая комбинация типов: 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г., имеет на это приведение несколько иной взгляд чем я. те модели что работали норм, на предыдущих версиях больше правильно не работают. вот я и думаю, это из-за нарушения стандарта или из-за неопределенности в нём. спб
  22. ток параметр впереди не забудьте, потому что это переменная времени компиляции
  23. блин, други, я чичас чуть не поседел! ВНИМАНИЕ! выложенное фифо содержит ошибку!!! ошибка в неправильном расчёте ширины счётчиков при помощи стандартной функции $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
  24. вот здесь http://electronix.ru/forum/index.php?showt...st&p=818389 они над этим работают http://www.eda.org/svdb/view.php?id=1350
  25. не знаю. уровень архитектуры как минимум предпочитаю описывать явно, не доверяя автоматизации.
×
×
  • Создать...