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

sv_brothers

Участник
  • Постов

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

  • Посещение

Сообщения, опубликованные sv_brothers


  1. Для выявления реальных знаний студента больше подходят вопросы, где необходимо по коду нарисовать схему, либо наоборот. Ну если уж так важны именно тесты - можно нарисовать 4 схемы и попросить поставить в соответствие им код.

    В целом к этому все и идет... За неимением кучи свободного времени, чтобы генерировать вопросы и ответы, был предложен тест по VHDL в "чистом виде" (как начальный этап), чтобы определить знания студентов в области применения (и особенностях использования) операторов языка (sequential/concurrent statements), понимания разницы между переменными и сигналами, строгой типизации данных и т.д.

    В текущие вопросы также планируется включить особенности кода VHDL для синтеза (например, исключение "защелок" при описании комбинационной части и т.д.).

     

    НО для этого студенты уже должны знать схемотехнику. Обычно нормальные знания по схемотехнике даются курса с 3. Отсюда вопрос - VHDL на 1-2 курсе - это что такое? Чисто синтаксис? Что за курс такой?

    Параллельно с курсом Автоматизированное проектирование КС (где рассматривается VHDL и особенности построения систем на ПЛИС в первом приближении) читается курс компьютерной схемотехники, так что студенты владеют предметной областью.

     

     

     

  2. Резковато, но в ощем и я согласен.

    Хотельсь бы узнать цель создания опросника?

    Если просто побаловаться или погонять студентов - это одно...

    А если дать "даме с собачкой" из отдела кадров для оценки знаний при приеме

    на работу - это совсем другое...

    Вообщем - цель непонятна. В любой более-менее адекватной фирме

    таким пользоваться явно не будут, а говорить будут по более предметной области-

    ЦОС, коммуникации и пр. и что и как соискатель конкретно делал в проектах

    Цель - оценка знаний студентов 1, 2-го курса. Отсюда и привязка к простым вопросам...

  3. Ну дайте плиз любую ссылку на любой тест в области языков описания аппаратуры или языков программирования (может где на brainbench.com), который построен правильно, согласно Вашему представлению (философии). Честно мне интересно на него посмотреть. Или он такой ценный, что не может быть в открытой печати?

  4. Извините за резкую критику. Ну правда, маразм какой то, а не вопросы.

     

    Спасибо за очень развернутый ответ и за время потраченное на ответ. С некоторыми позициями я с Вами согласен, возможно, тест перегружен слишком уж конкретной привязкой к синтаксису. С другой стороны, если честно, хотелось бы от Вас несколько примеров того, какие должны быть тестовые вопросы (можно и ссылку, на любой другой тест, даже по любому другому языку описания аппаратуры/программированию, где удачно поставлены вопросы и ответы).

     

    Очередной опус "на тему я самый умный". Судя по тому как составлены вопросы, цель не выявить реальные знания и возможности спеца, а засадить в лужу любого используя кручкотворные вопросы.

    Этот тест тут и появился, чтоб на него взглянул сторонний человек и дал свою оценку, но никак не для того чтобы: Очередной опус "на тему я самый умный" (и кстати, почему очередной??)

  5. Сложилось впечатление что большой уклон сделан в сторону проверки знаниний синтаксиса и структуры языка. На мой взгляд можно добавить вопросов связанных с синтезируемыми\несинтезируемыми конструкциями ну и вопросов на понимание во что выливается код при синтезе.

     

    Да, спс за дельные рекомендации. К этому все и идет, начинал от простого (что в голову сходу приходило :biggrin: ), ну, а потом уже и частично на код перешел. В дальнейшем планируется расширить, в том числе "тематику", что и Вы предложили. Кстати, если "подкините" пару тестовых вопросов я не обижусь :biggrin:

  6. Добрый всем день. Вобщем была в свое время необходимость найти тесты для оценки знаний (пусть будет студентов) в области языка VHDL (сразу скажу, что стандарт 1993 г.). Погуглив немного понял, что те что существуют сводятся к двум вариантам ответов (Да, Нет) + зарубежные варианты с чисто английской идеологией (т.е. при переводе на русский теряется всякий смысл теста).

    Ничего не найдя, решил своими силами сгенерировать нечто похожее на тесты.

    Так вот, захотелось мне заделиться своим "детищем" (см. прикрепленный файл) в данной ветке форума и послушать отзывы и Вашу конструктивную критику (по тому какие, вопросы составлены некорректно, где необходима дополнительная детализация).

    В идеале хотелось бы расширить перечень тестовых вопросов.

    P.S. Количество верных ответов может быть больше одного

    P.P.S. Похоже слово "детище" сыграло в роли раздражителя...

    P.P.S. Цель - оценка знаний студентов 1,2-курсов.

    quiz_vhdl_for_print.pdf

  7. В квартусе можно. Смотрите вложение.

    Однако насколько я помню данный подход допустим толькоя для простых проектов в схематике (и естественно без мегафункций). Для более сложных проектов из схематика получить VHDL невозможно. Если неправ, то поправьте.

  8. Мур

    xilinx ise ? я смогу там что-нибудь нарисовать? от квартуса отличается сильно?

    В Xilinx ISE тоже можно "что-нибудь" нарисовать. Но там графически было всегда не очень приятно рисовать. Хотя от графического ввода сейчас активно отходят, так что переходите на HDL ввод.

  9. Подскажите пожалуйста, раз тут пошла такая тема. А есть ли какие-нибудь общепринятые методы, которые позволяют проводить оценку надежностных свойств конкретного проектного решения на ПЛИС типа SRAM, помимо периодических отчетов (reliability reports) фирмы Xilinx и Altera, которые, насколько я понял, касаются сугубо элементной базы соответствующего семейства без учета характеристик самого проекта (используемых ресурсов - их тип и количество).

  10. Почесав немного свою качерышку(голову),я приступил к поиску информации,где бы рассказывалось про то как создать несколько одинаковых устройств и объединить их входные и выходные порты... Но мои поиски не дали особых результатов. Поэтому,я обращаюсь к вам, с просьбой показать как создать 2 идентичных устройства и объединить выходы первого с входами второго. Неважно что это будут за устройства, просто хочу понять как делать копии устройств и их каскадирование на языке VHDL. Заранее огромное спасибо! :smile3046:

    Насколько я понял из Вашего топика... Вам надо копать в области "Структурного описания проектов на VHDL". На самом деле первая часть задания где-то с этим граничит, только в качестве готовых компонентов выступают компоненты, описанные в пакете maxplus2 библиотеки Altera.

    Ключевые слова: COMPONENT, PORT MAP. По ним есть кучу инфы в инете.

    p.s. Можно узнать что за учебное заведение, в котором вы обучаетесь и курс обучения, если это не секрет :-)?

  11. Привет Всем!

    Есть ли прога которая обрбатывает исходник написанный на VHDL и преобразует его исходник на Verilog и наоборот???

    Второй вопрос:

    Есть ли прога которая иерархически описанный проект преобразует в плоский? Ну т.е мы же знаем что любая иерархически описанная схема - это просто схема и способ её описания не важен. Поэтому хотелось бы к примеру по NetList'у получить простой исходник.

    Заранее спасибо...

     

    По поводу программ сказать точно не могу. Как вариант можешь глянуть на ряд библиотек - хттп://www.questatechnologies.com/, может что найдешь подходящее.

  12. у вас 256 32-битных слов, как раз 1024 байта

     

    Да, спасибо, тут я немножко сам "протупил", запутался в разрядности шины адреса и забыл про разрядность хранимых данных.

     

    нет, не обязательно.

     

    а изучение шины лучше начинать со спецификаций, там про все сигналы и их (не)нужность сказано

     

    Вроде как со спецификации и начал.

     

    Столкнулся еще с одной проблемой - при задании разрядности шины данных и шины адреса (writedata, readdata, address) через параметры (в секции GENERIC) для пользовательского компонента. Например так:

     

    entity ram is
        generic 
        (
            DATA_WIDTH : natural := 32;
            ADDR_WIDTH : natural := 8
        );
        port 
        (
                    ................................................................
            address    : in std_logic_vector(ADDR_WIDTH-1 downto 0);
            wrdata    : in std_logic_vector(DATA_WIDTH-1 downto 0);
            rddata    : out std_logic_vector(DATA_WIDTH-1 downto 0);
            .................................................................
        );
    end entity;

     

    Получаю в QSys ошибку:

     

    Error: avalon_slave_0: Signal rddata[-1] must be a multiple of the symbol width 8

    Error: avalon_slave_0: Signal wrdata[-1] must be a multiple of the symbol width 8

     

    Хотя на вкладке HDL-parametres параметры отображаются корректно...

  13. Добрый день всем. Вот решил немного "поковырять" Qsys, чтобы посмотреть что за зверь такой. Решил идти от простого - создание своих простеньких пользовательских компонентов (Master и Slave), дабы разобраться в спецификации интерфейса Avalon. Так вот создал я два компонента:

    1. Slave - представляет собой память с интерфейсом:

     

    entity ram is
        port 
        (
                clk              : in std_logic;
                    reset           : in std_logic;
                rd               : in std_logic;
                wr               : in std_logic;
                address       : in std_logic_vector(7 downto 0);
                wrdata        : in std_logic_vector(31 downto 0);
                rddata         : out std_logic_vector(31 downto 0);
                waitrequest  : out std_logic
        );
    end entity;

     

    2. Master - представляет собой FSM, который будет записывать/вычитывать данные из подчиненного устройства по некоторому (неважно какому алгоритму). Интерфес Master`а:

     

    entity master is     
        port
        (
            clk               : in std_logic;
            reset            : in std_logic;
            waitrequest  : in    std_logic;
            rddata          : in std_logic_vector(31 downto 0);
            rd                : out std_logic;
            wr                : out std_logic;
            address        : out std_logic_vector(7 downto 0);
            wrdata         : out std_logic_vector(31 downto 0);
                    q_out           : out std_logic_vector(31 downto 0)   -- будет Conduit
        );    
    end entity master;

     

    Так вот вопрос самый первый. Почему при добавлении RAM (slave) Qsys определяет для него адресное пространство в пределах от 0x00000000 - 0x000003FF? Вроде как разрядность адреса (8 бит) не позволяет адресоваться в пределах заданного адресного пространства. Понимаю, что, возможно, ответ на вопрос лежит где-то в этом куске спецификации для сигнала address, но пока не могу понять:

     

    For masters, the address signal represents a byte address. The

    value of the address must be aligned to the data width. To write to

    specific bytes within a data word, the master must use the

    byteenable signal.

    For slaves, the interconnect translates the byte address into a

    word address in the slave’s address space so that each slave

    access is for a word of data from the perspective of the slave. For

    example, address= 0 selects the first word of the slave and

    address 1 selects the second word of the slave.

     

    Необходимо ли в моем проекте сигнал byteenable (вернее так: является ли он обязательным?).

    Пока это первые вопросы. Хотелось бы получить на них ответ, а потом идти уже дальше.

  14. Приветствую!

     

    Есть большой модуль скомпилированный в нетлист EDIF. Когда этот модуль при синтезе в Synplify смотришь в RTL View то видно что он состоит и 2 подмодулей у каждого из которых стоит атрибут syn_hier=hard.

    Есть необходимость разделить основной модуль EDIF на 2 каждый из которых содержал бы в себе эти подмодули.

     

    Есть ли программа которая позволила бы это сделать?

     

    Успехов! Rob

     

    Насчет тулзы не подскажу... В свое время копал в схожем направлении, использовал Java + EDIF_Parser (http://sourceforge.net/projects/byuediftools/) для манипуляции с EDIF-форматом. Единственное, что необходимо самому писать Java-код.

  15. Вот появилась необходимость при сборке иерархического проекта (в среде Quartus II), представленного на уровне нескольких компонент сохранять его иерархию. Т.е. запретить оптимизацию проекта на уровне межкомпонентного взаимодействия. В ISE Xilinx такая опция есть и ее можно выставить либо через настройки синтезатора (KEEP_HIERARCHY - YES/NO/Soft), либо используя аттрибуты, через язык описания аппаратуры. А вот как это дело провернуть в Quartus II? Перекопал кучу инфы и особо ничего толкового не нашел. Как вариант есть возможность разбивать проекты на разделы (Partitions) и уже "плясать" от туда. Может кто подскажет еще варианты (настройки синтезатора и т.д.), т.к. этот вариант не совсем подходит в силу некоторых обстоятельств.

    Кто подскажет как можно реализовать иерархический проект в QII без оптимизации межкомопнентных связей, чтоб в Post-Mapping и Post-Fitting иерархия проекта сохранялась, т.е. так как, это выглядит на уровне RTL Viewer.

  16. Вот результаты подобного исследования:

    http://scholar.sun.ac.za/handle/10019.1/1857

    Или ищите в гугле "Radiation tolerant implementation of a soft-core processor for space"

    Спасибо большое за линку... Частично с некоторыми наработками уже сталкивался...

  17. Исходные данные: Quartus II Web Edition 11.0 SP 1

    Проблема в следующем:

    Есть 2 проекта на VDHL. Для каждого из них создаю BSF-файлы.

    Создаю третий BDF-проект, в котором хочу все объединить в TOP-модуль. Подключаю два проекта VHDL, указывая в свойствах проекта (меню Libraries) пути к соответствующим готовым проектам. Вижу два проекта в BDF-редакторе. Далее, добавляю в BDF первый проект - тут все гуд. А вот при попытке добавить второй проект - пишет, что не найден BSF-файл или путь к библиотеке, т.е. добавление проекта не происходить. Захожу в настройки проекта (в меню Libraries), меняю местами добавленные проектные решения (подымаю второй проект выше первого, в списке Добавленных). Теперь этот проект добавляется, а другой нет.

    Кто-нибудь сталкивался с таким глюком. Если не сложно накидайте простенький проект и попробуйте провести те же манипуляции, что и я...

  18. нафиг пиратка, если ASE бесплатный и берется на оф. сайте? другое дело, что я не уверен, достаточно ли именно ASE для моделирования (одно из ограничений - либо верилог, либо вхдл, а в ниосе д.б. есть оба, может поэтому и не симулируется). а полный м-сим есть в закромах. если с последним сложности - пишите в личку

     

    Для простых проектов под Nios среды ModelSim Altera Starter Edition будет вполне достаточно (по крайней мере у меня проблем не было)... Просто автору темы надо не городить огород и поставить для Quartus соответствующий ModelSim ASE (скачать можно с официального сайта).

  19. Если не сложно, напишите (хотя бы в личную почту), что за проблема у Вас? Что делаете? Или это чисто теоретические проблемы?

    Удачи!

     

    Ну задача, прямо скажу, больше носит ИССЛЕДОВАТЕЛЬСКИЙ характер, но с некоторым заделом на практический выход (в том случае если получится вытянуть хоть какие-то расчетные данные, которые могли бы подтвердить результаты проделанной работы).

    В общем виде задачу можно представить как расчет надежностных характеристик САМОГО проекта на ПЛИС (пусть пока не самого сложного, а достаточно простого). 1. Принимая во внимание тот факт, что некоторая задача может быть решена несколькими способами, а выходной результат проектирования (при одинаковом "функционале") может быть разным (структура проекта, используемые ресурсы и т.д.), необходимо выбрать наиболее надежное проектное решение - устойчивое к SEU (во внимание берем только SRAM-based ПЛИСЫ). 2. Плюс ко всему сам проект можно сделать избыточным (в рамках кристалла) - добавить резервные каналы (тройное резервирование, дублирование или любая друга схема), а можно не весь проект, а только некоторую его часть. Так вот задача - просчитать различные структурные схемы и получить некоторые приблизительные оценки. Вот почему меня интересовала более детальная информация по занимаемым ресурсам со стороны определенных блоков проекта, выраженная в битах, точнее будет сказано "essential bits" (значащих битах).

    В общем хотелось бы "трезвого взгляда" со стороны.

     

    P.S. В личную почту отписать не получилось, поэтому написал сюда... не думаю что это критично.

  20. А это не совсем все просто...

    1. Если нужна повышенная надежность - ставят микросхемы с однократным программированием.

    2. Если речь идет не об АППАРАТНОЙ надежности к ОТКАЗУ самой микросхемы, а только о СБОЕ бита, то тут есть несколько путей...

     

    2.1. периодически проверять, если это возможно, файл конфигурации.

    2.2. периодически делать частичную реконфигурацию. А саму схему строить с избыточностью...

    2.3. делать схему самоконтролируемой. например, троированной. или применять любые встроенные тесты... и по выявлении сигнала о сбое - производить частичную реконфигурацию.

     

    3. вероятность сбоя конфигурации в нормальных условиях - это Вам к производителю чипов. Но, не думаю, что они Вам сразу же все расскажут. Тут слишком много еще и дополнительных факторов. Таких как питание, помехи и т.д.

     

    Спасибо будем "копать" в этом направлении...

  21. Возьмите файл конфигурации и посмотрите "на свет" редактором текста. Он сделан из блоков. И всеь файл так же защищен контрольными суммами..

     

    Потом почитайте у Ксайлинкса о частичной конфигурации - там рассказано, как это делается.

     

    Таким образом вычисляется, что файл конфигурации защищен контрольными суммами, которые при загрузке проверяются. И если есть сбой, то микросхема не скажет, что она загрузилась.

     

    Спасибо большое, тут разобрался...

     

    А уж если сбой конфигурации ожидается в процессе работы, то это совсем другая тема...

    Собственно изначально вот эта тема меня и интересует... Может у Вас будут какие рекомендации в этом направлении или полезные ссылки.

    Допусти есть проект и в процессе его эксплуатации возникают некоторые сбои (SEU) на уровне изменения значений LUTs, FFs, "служебных бит" и т.д. (в виду внешних воздействий). Проект состоит из некоторого количества блоков (пусть это будет Entities). Эти блоки между собой взаимосвязаны некоторым образом. На основании этих структурных связей строим структурную схему надежности. На сколько будет адекватным получить пусть приблизительные характеристики надежности для заданной структуры (вот тут моя попытка привязки к количеству занимаемых бит под соответствующий блок проекта). Т.е. здесь идет оценка самого проекта (его архитектуры), а не надежность всего проекта в составе микросхемы ПЛИС как таковой.

     

    P.S. Я понимаю, что на практике самый простой способ восстановления работоспособности системы - реконфигурация микросхемы ПЛИС (можно либо периодически реконфигурировать, либо вычитывать конфигурацию, проверять ее и после этого принимать решения).

     

  22. Отвечаю:

    1. любой проект занимает ВСЕ конфигурационные биты.

     

    Это да. Тогда может немного по другому сформулирую, чтобы для себя понять (прошу сильно не ругать если я не прав :-) ).

    Возможна ли такая ситуация:

    Пусть в процессе генерации файла конфигурации произошло изменение (неважно каким способом) части конфигурационных бит, но только тех, которые инициализируют неиспользуемую область кристалла ПЛИС. Будет ли конечный проект работоспособен?

     

    2. В каких битах? Конфигурационных? тогда ответа не будет. Поскольку изготовитель ПЛИС не сообщает сколько конфигурационных битов связано с различными ресурсами.

     

    Спасибо за ответ. Я думаю Ваш ответ на второй вопрос... в какой-то степени снимает первый вопрос.

  23. Народ, подскажите есть ли возможность получить более детальную информацию (или подскажите как правильно рассчитать, если это конечно возможно):

    1. Сколько занимает непосредственно проект (важных бит, essential bits) от общего количества конфигурационных бит устройства.

    2. Какую часть от всего проекта занимает определенный модуль (пусть будет Entity) только в БИТАХ (что-то типа Resource Utilization by Entity, но в битах).

    Можно ли вообще эти данные просчитать, имея на руках информацию о количестве LUTs, Registers и т.д. (т.е. та информация, которая доступна в отчетах существующих САПР).

×
×
  • Создать...