Builder
-
Постов
518 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные Builder
-
-
Если на ПЛИС, то чем не устраивают стандартные библиотечные двухпортовые FIFO ?
-
Вот пример скрипта для одного из проектов:
А вообще - хелп, там всё есть...
########################################
# source D:\\Project\\Hard\\md6550\\FPGA\\md6550_v1.tcl
# Pin-out (CSF)
set project_name "Topmd6550";
set cmp_settings_name "Topmd6550";
set device_name "EPM240T100C5";
set family_name "MAX II";
#set family_class "FLEX10K";
#set pci_io "OFF";
#set pci_th "0ns";
#set pci_decr1 "OFF";
#set pci_fastin1 "ON";
#set pci_fastin2 "OFF";
#set pci_fastout "OFF";
#set pci_lowcap "OFF";
#set pci_fastrow "OFF";
#set pci_tsuio "7ns";
#set pci_tsupp "10ns";
#set pci_iostd "";
set pci_fmax "20 MHz";
#set pci_tsu_pcix "";
#set pci_tco "11ns";
#set pci_thz "28ns";
# Параметры оптимизации и упаковки
set_global_assignment -name maxii_optimization_technique speed;
# set_instance_assignment -name auto_packed_registers_maxii "minimize area" -to clock;
set_instance_assignment -name auto_packed_registers "minimize area" -to clock
set_global_assignment -name reserve_all_unused_pins "as input tri-stated";
set_instance_assignment -name weak_pull_up_resistor on -to Step_I;
set_instance_assignment -name weak_pull_up_resistor on -to Dir_I;
set_instance_assignment -name weak_pull_up_resistor on -to Ena_I;
set_instance_assignment -name weak_pull_up_resistor on -to nRS_I;
set_instance_assignment -name weak_pull_up_resistor on -to SW\[1\];
set_instance_assignment -name weak_pull_up_resistor on -to SW\[2\];
set_instance_assignment -name weak_pull_up_resistor on -to SW\[3\];
set_instance_assignment -name weak_pull_up_resistor on -to SW\[4\];
set_instance_assignment -name weak_pull_up_resistor on -to nFREF;
set_instance_assignment -name weak_pull_up_resistor on -to CB\[1\];
set_instance_assignment -name weak_pull_up_resistor on -to CB\[2\];
set_instance_assignment -name weak_pull_up_resistor on -to nFIB;
set_instance_assignment -name weak_pull_up_resistor on -to CA\[1\];
set_instance_assignment -name weak_pull_up_resistor on -to CA\[2\];
set_instance_assignment -name weak_pull_up_resistor on -to nFIA;
set_instance_assignment -name io_standard "3.3V Schmitt Trigger Input" -to "CLK_I";
set_instance_assignment -name io_standard "3.3V Schmitt Trigger Input" -to "SW\[1\]";
set_instance_assignment -name io_standard "3.3V Schmitt Trigger Input" -to "SW\[2\]";
set_instance_assignment -name io_standard "3.3V Schmitt Trigger Input" -to "SW\[3\]";
set_instance_assignment -name io_standard "3.3V Schmitt Trigger Input" -to "SW\[4\]";
set_instance_assignment -name io_standard "3.3V Schmitt Trigger Input" -to "Step_I";
set_instance_assignment -name io_standard "3.3V Schmitt Trigger Input" -to "Dir_I";
set_instance_assignment -name io_standard "3.3V Schmitt Trigger Input" -to "Ena_I";
set_instance_assignment -name io_standard "3.3V Schmitt Trigger Input" -to "nRS_I";
set_instance_assignment -name io_standard "3.3V Schmitt Trigger Input" -to "nFREF";
set_instance_assignment -name io_standard "3.3V Schmitt Trigger Input" -to "CB\[1\]";
set_instance_assignment -name io_standard "3.3V Schmitt Trigger Input" -to "CB\[2\]";
set_instance_assignment -name io_standard "3.3V Schmitt Trigger Input" -to "nFIB";
set_instance_assignment -name io_standard "3.3V Schmitt Trigger Input" -to "CA\[1\]";
set_instance_assignment -name io_standard "3.3V Schmitt Trigger Input" -to "CA\[2\]";
set_instance_assignment -name io_standard "3.3V Schmitt Trigger Input" -to "nFIA";
puts "Applying pin-out.."
#cmp start_batch;
cmp add_assignment "$cmp_settings_name" "" "" "DEVICE" "$device_name";
cmp add_assignment "" "" "" "FAMILY" "$family_name";
cmp add_assignment "$cmp_settings_name" "" "CLK_I" "LOCATION" "Pin_99";
cmp add_assignment "$cmp_settings_name" "" "Step_I" "LOCATION" "Pin_52";
cmp add_assignment "$cmp_settings_name" "" "Dir_I" "LOCATION" "Pin_51";
cmp add_assignment "$cmp_settings_name" "" "Ena_I" "LOCATION" "Pin_66";
cmp add_assignment "$cmp_settings_name" "" "nRS_I" "LOCATION" "Pin_73";
cmp add_assignment "$cmp_settings_name" "" "Fault" "LOCATION" "Pin_75";
cmp add_assignment "$cmp_settings_name" "" "FST" "LOCATION" "Pin_76";
cmp add_assignment "$cmp_settings_name" "" "SW\[1\]" "LOCATION" "Pin_83";
cmp add_assignment "$cmp_settings_name" "" "SW\[2\]" "LOCATION" "Pin_84";
cmp add_assignment "$cmp_settings_name" "" "SW\[3\]" "LOCATION" "Pin_85";
cmp add_assignment "$cmp_settings_name" "" "SW\[4\]" "LOCATION" "Pin_86";
cmp add_assignment "$cmp_settings_name" "" "nLDAC" "LOCATION" "Pin_26";
cmp add_assignment "$cmp_settings_name" "" "nSYNC" "LOCATION" "Pin_29";
cmp add_assignment "$cmp_settings_name" "" "SCLK" "LOCATION" "Pin_28";
cmp add_assignment "$cmp_settings_name" "" "DATA" "LOCATION" "Pin_27";
cmp add_assignment "$cmp_settings_name" "" "nFREF" "LOCATION" "Pin_48";
cmp add_assignment "$cmp_settings_name" "" "Igreen" "LOCATION" "Pin_21";
cmp add_assignment "$cmp_settings_name" "" "nFault" "LOCATION" "Pin_5";
cmp add_assignment "$cmp_settings_name" "" "INB\[1\]" "LOCATION" "Pin_100";
cmp add_assignment "$cmp_settings_name" "" "INB\[2\]" "LOCATION" "Pin_89";
cmp add_assignment "$cmp_settings_name" "" "nSDB\[1\]" "LOCATION" "Pin_1";
cmp add_assignment "$cmp_settings_name" "" "nSDB\[2\]" "LOCATION" "Pin_87";
cmp add_assignment "$cmp_settings_name" "" "CB\[1\]" "LOCATION" "Pin_74";
cmp add_assignment "$cmp_settings_name" "" "CB\[2\]" "LOCATION" "Pin_78";
cmp add_assignment "$cmp_settings_name" "" "nFIB" "LOCATION" "Pin_90";
cmp add_assignment "$cmp_settings_name" "" "INA\[1\]" "LOCATION" "Pin_67";
cmp add_assignment "$cmp_settings_name" "" "INA\[2\]" "LOCATION" "Pin_33";
cmp add_assignment "$cmp_settings_name" "" "nSDA\[1\]" "LOCATION" "Pin_20";
cmp add_assignment "$cmp_settings_name" "" "nSDA\[2\]" "LOCATION" "Pin_34";
cmp add_assignment "$cmp_settings_name" "" "CA\[1\]" "LOCATION" "Pin_54";
cmp add_assignment "$cmp_settings_name" "" "CA\[2\]" "LOCATION" "Pin_57";
cmp add_assignment "$cmp_settings_name" "" "nFIA" "LOCATION" "Pin_91";
#cmp end_batch;
puts "..Finished !!";
-
Что касается пинов - я делаю все назначения через tlc скрипт, даже
удобнее.
-
Как-то обсуждалось, мотрите по ссылкам:
http://www.google.com/search?hl=be&as_qdr=...%B0%D1%86%D1%8C
-
Сейчас по моему исследования по НС переместились в область моделирования реальных нейронов.
Вон, IBM и супер комп выделила даже для моделирования кусочка мозга крысы.
-
Это как в генераторе случайных чисел - начальное задание :)
Я обычно ставлю 1-100, и жду...
Тип оптимизации выбираете сами.
Запускаете, и смотрите - если встретилась раскладка, которая вас устраивает - там есть кнопка , раскладка сохраняетмя в как текущая.
После чего нужно переразвести проект в Q.
Коротко - всё.
Кроме seed - разобрался сам, немного поэксперементировав настройками.
-
Наверное как всегда - буква 'я' (маленькая). Замените на большую.
У неё код - FF, воспринимает как конец файла.
-
В MaxPlus сгенерит выходной файл (Netlist Write - Verilog или VHDL)
А его объединить вместе с др. HDL проектами в единую систему, которую и будете тестить (в ActiveHDL или MadelSim например)
-
По отыту, если в живую работает, а моделирование - нет, то дело обычно в том, что в железе (ПЛИС), регистры и др. узлы имеют начальное значение. Даже если сброса нету. А в модели отсутствие сброса (или начальной устаноки) выливается в 'x'
Что делать - думаю понятно.
-
Я вот открыл свой учебник времён универа, вот что есть по поводу сравнения чисел, может будет полезно:
Логические уравнения для сравнения чисел строятся исходя из следующих соображений. Если в старшем разряде слова А - единица, а В - ноль, то независимо от младших разрядов имеем A>B. Если равны - анализируются младшие разряды. Думаю идея понятна.
И кажись Альтера строит дерево компараторов именно этим способом.
-
Вот ещё ссылка на схему.
Правда сам не делал, но говорят что родная.
-
To DEF
Старые это какие? У меня валяются 5.12, 5.16, v5.2, v6.2, v7.01, v7.02.
Подходят?
-
А схему на битбластер где брали?
-
На форуме официального поставщика этот вопрос поднимали.
Пролистайте форум, там есть:
-
Что-то я не понял, я считал что для 2-ва последовательных D тригера и используются для ввода в синхронную схему асинхронного сигнала.
Вот ссылка на один из документов где это описывается:
http://www.sunburst-design.com/papers/Cumm...cClk_rev1_1.pdf
Не могли бы вы дать ссылку на документ в котором описывается другой вариант ввода асинхронного сигнала, а то я собственно только на 2 D тригера везде натыкаюсь...
-
Спасибо за ответ.
По поводу мощного симулятора, есть проблема, не знаю как её решить.
Вопрос уже задовал в соседней конфе (Работаем с ПЛИС, области применения, выбор/ActiveHDL, временное моделирование (+)), если кратко:
Для правильной привязки асинхронного сигнала к синхронизации применяют стандартную схему борьбы с метастабильностью - 2 последовательно вкл.чённых регистра. И соответственно для первого из них не выдерживаются времена установки/удержания (входной сигнал то асинхронный).
Читал в одной статье, что для обхода этой ситуации (речь шла о Синопсисе) применяется команда отключения контроля времен установки/удержания для входных тригеров. Тогда всё получается правильно. В противном слёчаее - варнинги и паявление 'x' во всей схеме...
Может знаете как быть в Active? А то среда понравилась, удобная, а вот симулятор слабоват, для временной симуляции придётся внешний использовать.
-
А как напрямую запускать из-под Active моделирование скажем в Моделсиме ?
Или речь шла только о запуске синтезаторов?
-
To DimaV
Дело в том, что для правильной привязки асинхронного сигнала к синхронизации применяют стандартную схему борьбы с метастабильностью - 2 последовательно вкл.чённых регистра. И соответственно для первого из них не выдерживаются времена установки/удержания (входной сигнал то асинхронный).
Читал в одной статье, что для обхода этой ситуации (речь шла о Синопсисе) применяется команда отключения контроля времен установки/удержания для входных тригеров. Тогда всё получается правильно. В противном слёчаее - варнинги и паявление 'x' во всей схеме...
-
В описании МоделСим видел команду tcheck_set, она не работает? Сам пока не проверял.
-
После разводки кристала делаю временное моделирование.
В схеме есть стандартный переход асинхронного входа к внутреннему клоку.
В при моделировании естественно для входного регистра временные параметры (время предустановки/удержания) не выдерживаются и схема моделируется не правильно.
Почитав книги, нашёл что стандартным способом обхода этой проблемы
является отключение контроля временных параметров для входного регистра.
Собственно вопрос:
Может кто знает, как отключить контроль временных параметров для отдельно взятых регистров/блоков в ActiveHDL?
В хэлпе по ModelSim такие команды нашёл, а в ActiveHDL нет.
Может я что не понял по командам ActiveHDL?
QT4 (Trolltech) for Win
в Алгоритмы ЦОС (DSP)
Опубликовано · Пожаловаться
вот ветка, где обсуждается каким образом поставить коммерческую
Qt 4 с полной интеграцией в msvs 2003. http://prog.org.ru/forum/topic_1540_de7127...e0edacce3d.html