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

KA3AKOB

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

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

  • Посещение

Репутация

0 Обычный

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Посетители профиля

775 просмотров профиля
  1. Плата с FPGA Xilinx XC5200 уже приобретена, поэтому соображения типа, перейти на более новый тип FPGA, новую среду и т.п. не в данном случае. И Foundationа кроме 3.1 другого нет. И не надо. Я подозреваю, что пропустил в информациях что-то, что позволяет взять Xilinxовскую библиотеку для xc5200 и так же как для схем использовать модули из этой библиотеки в модуле на верилоге. Очень странно, если такой возможности в среде нет. Мне не счётчик на верилоге надо написать. Кстати, макрос на верилоге я в схемном проекте написать могу и использовать могу, а когда наоборот: в вериложном проекте вставить схемный примитив не могу: unexpanded. Это мне и кажется странным.
  2. Ну, да. Нужно сообщить название библиотеки. И где это название вписать? В какой именно текст на Verilogе? Когда рисую в Schematic Editorе, то в Project Managerе указываю из какой библиотеки таскать макросы, созданные в прошлых проектах, в текущий проект. Слева в Attached Libraries Выбираем нужную библиотеку, d00, например, нажимаем Add>> и можем таскать d00-ные макросы на схему. Но это на схеме. А я хочу втащить в текущий проект. А он уже пишется на Verilogе. Пока один единственный модуль e70. Пример его см. выше. Что именно надо написать в тексте e70.v, чтобы макрос CB4CE втащился в проект? Библиотека xc5200 уже присоединена, макросы из неё в тексте на верилоге использовать нельзя. Что написать в тексте, чтобы было можно?
  3. Работаю в среде Xilinx Foundation 3.1. В основном рисую схемы в Schematic Editor, но есть необходимость писать часть схемы на Verilogе. Плата с FPGA Xilinx XC5200 уже приобретена, поэтому соображения типа, перейти на более новый тип FPGA, новую среду и т.п. не в данном случае. Когда рисую схемы в Schematic Editor пользуюсь библиотекой для XC5200, она задаётся в начале проектирования в соответствии с типом FPGA. В схемах запросто втаскиваю, например, библиотечный макрос счётчика на 4 бита: CB4CE. Необходимо написать макрос на Verilogе, включающий этот счётчик: module e70 (N20, OU) ; input N20 ; wire N20; output OU ; //reg OU ;// add your declarations here wire provod1; // add your code here CB4CE cnt (.CE(1'b1), .C(N20), .CLR(1'b0),.Q0(),.Q1(),.Q2(),.Q3(), .CEO(provod1)); CB4CE cnt2 (.CE(provod1), .C(N20), .CLR(1'b0),.Q0(),.Q1(),.Q2(),.Q3(OU)); endmodule Создаю две сущности этого счётчика и соединяю провода. Но транслятор во время сборки проекта фиксирует ошибку: Checking expanded design ... ERROR:NgdBuild:432 - logical block 'cnt' with type 'CB4CE' is unexpanded ERROR:NgdBuild:432 - logical block 'cnt2' with type 'CB4CE' is unexpanded ERROR:NgdBuild:456 - logical net '_Logic1_' has both active and tristate drivers ERROR:NgdBuild:456 - logical net 'N_N20' has both active and tristate drivers ERROR:NgdBuild:456 - logical net '_Logic0_' has both active and tristate drivers Такое впечатление, что в Foundation 3.1 можно только писать на самом языке Verilog и в результате получается модуль, состоящий только из примитивов библиотеки simprims, содержащей только вентили AND, OR, XOR и так далее. Как добиться, чтобы макросы, созданные в других моих же проектах, с помощью Schematic Editor, VHDL, Verilog , можно было использовать в моих новых проектах? Заранее, благодарю за ответы и советы.
  4. Благодарствую за чёткий, краткий и понятный ответ. Однако, мистика какая-то: я это же самое, как помнится, писал в своих первых попытках создать чисто HDL-ный проект на Verilogе, и у меня ничего не транслировалось, а попробовал Ваш способ - и всё сложилось. Большое спасибо за помощь! С уважением, Казаков С.А.
  5. Работаю в среде Xilinx Foundation 3.1. В пакете имеется транслятор с языка Verilog. Есть желание написать всё на Verilogе, но мне непонятно, как указать контакты микросхемы ПЛИС в проекте. При создании нового проекта среда предлагает указать какого типа будет проект Schematic или HDL. Для варианта Schematic в головном модуле рисуем на схеме (бросаем на схему взятые из библиотеки элементы IPAD->IBUF->некий мой макрос ->OBUF->OPAD). Помечаем проводники (сети) между IPAD->IBUF и OBUF->OPAD какими-то именами и указываем эти имена в файле User Constraint File : NET NS20 LOC=P5 NET IO16 LOC=P37. Всё это отлично работает пока головной модуль и весь проект Schematic, а на Verilogе пишу только макросы, которые превращаются в символы (Symbols) из которых торчат контакты. Эти контакты, дорисовывая схему, присоединяем к элементам IBUF/OBUF. Однако, мне совершенно непонятно, что надо написать в тексте на Verilogе, чтобы подключиться к этим IBUF/OBUF, если сам проект типа HDL, а головной модуль на Verilogе. Я пробовал сделать экспорт из Schematic Editorа: Optopns/Export Netlist... в Verilog и в VHDL, подсовывал эти экспортированные самой средой тексты в качестве головных, но среда каждый раз показывала ошибки. Как добиться требуемого? KA3AKOB.
  6. У меня на готовой плате в конструктиве достаточно древний FPGA с 456 ячейками, приходится экономить эти самые ячейки. Но, в общем Вы правы, очень уж большой разницы в процентах использования ячеек не будет. Но у меня именно академический интерес.
  7. Спасибо за ответ. Нужно ли? Желательно. В моём понимании логическая ячейка это D-триггер с синхронным входом CLOCK и некоторая обвязка из логических элементов 2И-НЕ, 3И-НЕ и прочих вентилей. Из этих вентилей вполне можно собрать потенциальный RS-триггер в точном соответствии с приведённой Вами таблицей истинности. Но тогда, имеющийся в ячейке D-триггер не используется, пропадает зря. При малой степени интеграции подобная расточительность чревата. Ну, и концептуально интересно: из потенциальных RS-триггеров можно сделать импульсные (на самом деле тоже потенциальные, как я понимаю, но срабатывающие по фронту, запрет только на совпадение фронтов, тогда состязания, но нет запрета на потенциалы) D-триггера с синхронизирующим входом CLOCK, а можно ли наоборот: из D-триггеров сделать RS-? Пожалуй, да, второе. Реализация схем аналогичных тем, что когда-то паялись на 133 серии. Но уже на новой технологической основе и новыми средствами проектирования. Поэтому прошу не удивляться, возможно, устаревшему подходу. Вот судя по примерам и литературе Verilog синтезирует только с использованием синхронных триггеров и вообще синтезирует схемы, предполагающие только синхронную логику. А мне как-то привычнее асинхронная.
  8. Преамбула: Вопрос по синтезу цифровых последовательностных автоматов на схемах малой интеграции. Известны способы синтеза цифровых автоматов[1]. Большинство сводится к формализации функционирования автомата в виде функции переходов, переводимой в таблицу переходов, и функции выходов. Два вида: автоматы Мили и автоматы Мура. В данном вопросе разница несущественна. Известно, что автомат представляется в виде набора триггеров (как элементов памяти) и комбинационной схемы, реализующей логику переходов из одного состояния схемы в другое. При этом выходы комбинационной схемы являются входами триггеров памяти, а выходы триггеров подаются на входы комбинационной схемы. Мне известен способ создания автоматов Мили на базе асинхронных потенциальных триггеров RS. Закон функционирования которых задаётся формулой Q+ = S or (Q & (not R)) . При этом на входные сигналы накладывается ограничение R & S = 0. То есть одновременно нельзя подавать по 1 на вход и R и S. Амбула. Собственно мой вопрос: в системах проектирования FPGA триггеры уже есть и в большом числе. Но это D-триггера с синхронным входом С (CLOCK). Возможно ли как-то использовать эти триггера аналогично триггерам RS? Можно ли вход CLOCK использовать как входной, наряду с входом D, а не как синхроимпульс, по фронту которого и происходит запись уровня D в триггер-защёлку? Не смотря на кажущийся очевидным ответ, вопрос не так-то прост. Речь идёт о концептуальном подходе. В частности, я могу синтезировать схему импульсного dJdK-триггера или D-триггера на базе элементов памяти на RS-триггерах. А возможно ли наоборот: синтезировать потенциальный (то есть управляемый уровнем, а не фронтом импульса) RS-триггер на базе импульсного (точнее, меняющего состояние по фронту синхронного импульса CLOCK) D-триггера? С уважением, Казаков С.А. 1. Smith J.R., Roth C.H. Analysis and synthesis of asynchronous sequential networks using edge-sensitive flip-flops. -- IEEE trans., 1971, C-20,8, p.847-855.
×
×
  • Создать...