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

MAZZI

Свой
  • Постов

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

  • Посещение

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


  1. Спасибо большое, с помощью твоего рисунка с первого раза сразу же получилось! :) Мои заметки, для тех кто будет делать по такому методу: 1) обязательно должен быть создан проект с указанием Simulator (к примеру, = ModelSim SE Verilog; если будет ISE Simulator, то будет ругань) 2) прописан путь к симулятору, как на картинке выше (в моем случае = C:/QuestaSim/win32) 3) вначале я ожидал, что он положит в библиотеку QuestaSim, и смотрел туда где новые папки появились, но после нашел строчку в репорте "Modifying c:\questasim\win32/../modelsim.ini", и увидел, что он поменял внутри modelsim.ini: simprims_ver = $MODEL_TECH/../xilinx/verilog/simprims_ver unisims_ver= $MODEL_TECH/../xilinx/verilog/unisims_ver на SIMPRIMS_VER = C:\Xilinx_ISE81\verilog\mti_se\simprims_ver UNISIMS_VER = C:\Xilinx_ISE81\verilog\mti_se\unisims_ver Ещё раз спасибо большое CaPpuCcino, без тебя ну никак бы и никуда!
  2. Добрый День, сталкнулся с такой ситуацией: Необходимо промоделировать Virtex 2VPO с внутренней ячейкой Rocket IO. В общем CoreGen сгенерил модуль с сылкой на компоненту GT_CUSTOM, которой в стандардных файлах библиотек скачанных из Xilinx (mxe6.2c_91isp2_simulation_libraries.zip и в mxe6.2c_91i_ip1_xilinxcorelib.zip) отсутствует. Так же я слышал когда-то, что можно сгенерить из самого ISE библиотеки для ModelSim, как это сделать, подскажите, пожалуйста!? Пошагово :). (внутри ISE в библиотеке unisim компонента GT_CUSTOM.v присутствует)
  3. Есть такая задача: Нужно управление, допустим стиральной машиной, через Ethernet и Internet, необходимо Web-управление, Telnet, SNMP; upgrate через TFTP. Задача выбрать микроконтроллер, программное обеспечение quick start, операционную систему. Очень хочеться узнать мнение спецов, кто уже это все проходил, кто и что выбрал, и что можете посоветовать, какие могут возникнуть сложности. Возможно у Вас есть какой-то прототип с примером, где подобное уже существует.
  4. УРА!!! Да здравствует все кто мне помог! (maks в особенности :) ) В общем какой результат: 1) вначале в modelsim.ini я правил параметр VoptFlow = 0, но это привело к тому, что при запуске DO-файла, QuestaSim вылетал, вернул все назад как было 2) помогла простая запись: vsim -voptargs="+acc" -t 1ps +maxdelays -L unisims_ver -lib work MUX3_240_UNIBAP2_FPGA1_TB glbl и сразу все обернулось в замечательный вид и удобство отладки :) всем спасибо!
  5. Gate, спасибо большое за твой ответ! Поверь мне, я менторовцев очень люблю за то, что с помошью их программы я успешно решаю задачи разработки и моделирования, и вближайшее время последую твоим советом по настройке. Обрати и на такой результат, что после моего сообщения, ты дал мне идеи для решения. :) Как ты считаешь, если бы существовал FAQ у ментора, в котором решение данной ситуации уже описывалось, то пользователям ModelSim (QuestaSim) было бы легче работать с их продуктом? Сейчас для меня результат такой, что я трачу время на поиск решения, при том что у меня есть более приоритетные и важные задачи, и поэтому я считаю, что менторовская команда работает плохо.
  6. Господа, кто нашел выход по теме? Я сейчас описываю в выходные сигналы всё, что необходимо мне для отладки модулей, но это ведь очень не удобно! К тому же параметры он тоже не выводит в своем окне "SIM", и параметры тоже приходиться через выходные сигналы объявлять, очень гемморойная система стала! Кто нашел более мудрое решение, чем это? :-) Кто общается с Mentor разработчиками, попросите их думать о пользователях, прежде чем вносить "усовершенствования" в ПО. :-)
  7. Господа, напишите, какие настройки необходимо добавить, чтобы можно было работать совместно с NoDebug = 1 работали так же библиотеки Xilinx?
  8. В общем это был временный глюк, а так после NoDebug = 1 ругань вот какая, что это может быть? # Top level modules: # C_DEFRM_SERSA # vsim -L unisims_ver -lib work -t 1ps +maxdelays C_DEFRM_SERSA glbl # ** Note: (vsim-3813) Design is being optimized due to module recompilation... # Loading work.C_DEFRM_SERSA(fast) # Loading C:\QuestaSim\win32/../xilinx/verilog/unisims_ver.SRL16E(fast) # Loading work.glbl(fast) # ** Error: (vsim-3067) Debug module 'C:\QuestaSim\win32/../xilinx/verilog/unisims_ver.SRL16E(fast)' called from nondebug module 'work.C_DEFRM_SERSA(fast)'. # Region: /C_DEFRM_SERSA
  9. поставил в modelsim.ini NoDebug = 1 теперь он на это не ругается, далее ругнулся так: # ** Error: (vlog-7) Failed to open design unit file "L:/COMPONENT/INTERFACE/C_DEFRM/C_DEFRM_SERSA.v" in read mode. # No such file or directory. (errno = ENOENT) # ** Error: C:/QuestaSim/win32/vlog failed. # Error in macro L:\COMPONENT\INTERFACE\C_DEFRM\SERSA\SERSA.do line 25 причем файл C_DEFRM_SERSA.v присутствует, в DO-файле line 25: vlog L:/COMPONENT/INTERFACE/C_DEFRM/C_DEFRM_SERSA.v делаю все в QuestaSim 6.2e
  10. Поставил недавно новый ModelSim 6.2e, по причине лучшей работы с языком моделирования, и тут вдруг обнаружил, что сигналы внутри модуля достать невозможно... к примеру: module TEMP #(...) ( input i_GCLK, /* Т. И. */ i_CLK_EN, /* разрешение генерации E1 */ /* битовый фрейм */ output o_DOUT /* исходящие данные (LSB-первый) */ ); /*----------------------------------------------------------------------------- */ ... always @(posedge i_GCLK)begin if ( i_CLK_EN )begin R_cnt_bit <= R_cnt_bit + 1; /* счетчик, который работает внутри и не имеет выхода наружу из модуля */ end end ... endmodule И вот этот самы счетчик нельзя вывести на WAVE-диаграмму, это что такой прикол новый? Причем в описании DO-файла: add wave -noupdate -format Logic -radix hexadecimal /C_DEFRM_SERSA/R_cnt_bit ModelSim ругается: # ** Error: (vish-4014) No objects found matching '/C_DEFRM_SERSA/R_cnt_bit'. Как мне теперь выводить внутренние сигналы, кто работал с новым ModelSim? Кто знает их новую программу для моделирования QuestaSim, она так же работает или со старыми возможностями?
  11. Кому интересно будет, решение на Verilog: parameter NUMB_FRM = 16 /* число FRM в MultiFRM */ , WIDTH_SRL = 16 /* ширина сдвигового регистра */ , NUMB_SRL = NUMB_FRM * BYTE / WIDTH_SRL /* число FRM в MultiFRM */ , NUMB_INIT = NUMB_FRM * BYTE /* число установок INIT */ ; /* функция переворачивания числа */ function [(WIDTH_SRL-1): 0] f_MsbToLsb; input [(WIDTH_SRL-1): 0] i_numb; integer i; begin for (i = 0; i < WIDTH_SRL; i = i+1) f_MsbToLsb[i] = i_numb[(WIDTH_SRL-1) -i]; end endfunction /* функция сдвига числа */ function [(WIDTH_SRL-1): 0] f_ShiftINIT; input [(NUMB_INIT-1): 0] i_numb; input integer i_idx; begin f_ShiftINIT = i_numb >> WIDTH_SRL * i_idx; end endfunction /*----------------------------------------------------------------------------- * компоненты SRL16 */ parameter GEN_INIT = { {SA, ALM, NFAS, Ebit_2}, {FAS, CRC4} , {SA, ALM, NFAS, Ebit_1}, {FAS, CRC4} , {SA, ALM, NFAS, 1'b1}, {FAS, CRC4} , {SA, ALM, NFAS, 1'b1}, {FAS, CRC4} , {SA, ALM, NFAS, 1'b0}, {FAS, CRC4} , {SA, ALM, NFAS, 1'b1}, {FAS, CRC4} , {SA, ALM, NFAS, 1'b0}, {FAS, CRC4} , {SA, ALM, NFAS, 1'b0}, {FAS, CRC4} }; genvar i; wire [(NUMB_SRL/*-1*/):0] DOUT_SRL; assign DOUT_SRL[NUMB_SRL] = DOUT_SRL[0]; assign o_DOUT = DOUT_SRL[0]; generate for (i=0; i<NUMB_SRL; i=i+1)begin:SRL SRL16E #( .INIT( f_MsbToLsb(f_ShiftINIT(GEN_INIT,i)) ) ) SRL( .Q (DOUT_SRL[i] ), // SRL data output .A0 (1'b1 ), // Select[0] input .A1 (1'b1 ), // Select[1] input .A2 (1'b1 ), // Select[2] input .A3 (1'b1 ), // Select[3] input .CE (i_CLK_EN ), // Clock enable input .CLK(i_GCLK ), // Clock input .D (DOUT_SRL[i+1]) // SRL data input ); end endgenerate Причем прикол был, что Active-HDL-7.1, так и не заработал, на боле новой не проверял, ModelSim 6.1f вылетал при моделировании, причина оказалась в используемых параметрах внутри функций, помогло установкой ModelSim 6.2e
  12. 4Oldring Хороший пример, сейчас сделаю подобное на Verilog
  13. Ну раз мы не знакомы - считаю трижды повторенное обращение к себе на "ты" как попытку оскорбления. Возможно, для Вас это попытка оскорбления, очень жаль... Предлагаю Вам тогда перейти на "ты" и познакомиться, чтобы это Вас не напрягало, Вы согласны? Что Вы можете сказать ближе к теме сообщения? значит просто другие правила именования генерируемых экземпляров. Узнайте их и корректно напишите defparam-ы ничего не нашел, возможно промахнулся в поиске :) может что-то подобное встретили? Activ-HDL ругнулся на то, что не видит такой модуль, но я его назвал по правилам... ModelSim тоже ругнулся, только уже не помню как, из этого я заключил, что он не понимает таких объявлений при generate, причем так же описывал генерируемые конструкции по стилю Verilog-95 и результат такой же, ругаются.
  14. Это почему не поймет? Обязана понять. В крайнем случае через 'ifdef можно разные варианты defparam-ов для разных случаев прописать. Будет время - проверю, у меня есть пара моделяторов (nc-verilog и vcs) на defparam ругается... толи ковычки [] в иерархии не воспринимает, толи ещё какая ерунда...
  15. Мы знакомы? Нет, мы не знакомы. Я хотел бы чтобы ты пояснил строчку написанную тобой выше.
  16. согласен, и на любом другом тоже можно добиться, только вот такое не поймет любая система моделирования (ModelSim, Active-HDL, т.д.), а это тоже очень важно не очень понял что ты имел ввиду...
  17. Хотел добиться, чтобы установка ограничения INIT действовала на параметризованную сгенирированную константу, необходимо было добиться постоянного, не подгружаемого кода в линии: /* это описанные константы */ defparam SRL[7].SRL16E_0.INIT = { {SA,ALM,NFAS,Ebit_2},{FAS, CRC4} }; defparam SRL[6].SRL16E_0.INIT = { {SA,ALM,NFAS,Ebit_1},{FAS, CRC4} }; defparam SRL[5].SRL16E_0.INIT = { {SA,ALM,NFAS,1'b1},{FAS, CRC4} }; defparam SRL[4].SRL16E_0.INIT = { {SA,ALM,NFAS,1'b1},{FAS, CRC4} }; defparam SRL[3].SRL16E_0.INIT = { {SA,ALM,NFAS,1'b0},{FAS, CRC4} }; defparam SRL[2].SRL16E_0.INIT = { {SA,ALM,NFAS,1'b1},{FAS, CRC4} }; defparam SRL[1].SRL16E_0.INIT = { {SA,ALM,NFAS,1'b0},{FAS, CRC4} }; defparam SRL[0].SRL16E_0.INIT = { {SA,ALM,NFAS,1'b0},{FAS, CRC4} }; genvar i; wire [(NUMB_SRL/*-1*/):0] DOUT_SRL; assign DOUT_SRL[NUMB_SRL] = DOUT_SRL[0]; assign o_DOUT = DOUT_SRL[0]; generate for (i = 0; i < NUMB_SRL; i = i+1)begin:SRL SRL16E SRL16E_0( .Q (DOUT_SRL[(NUMB_SRL-1): 0]), // SRL data output .A0 (1'b0 ), // Select[0] input .A1 (1'b1 ), // Select[1] input .A2 (1'b1 ), // Select[2] input .A3 (1'b1 ), // Select[3] input .CE (i_CLK_EN ), // Clock enable input .CLK(i_GCLK ), // Clock input .D (DOUT_SRL[(NUMB_SRL): 1]) // SRL data input ); end endgenerate На Verilog я не добился рабочего варианта, чтобы это можно было использовать, ругается компилятор на defparam. Скажите, зубры VHDL, позволяет он делать INIT установки на параметризированную компоненту?
  18. я использую старенький макропроцессор M4, только его хорошенько следует настроить и создать свои пользовательские библиотеки
  19. Мой опыт максимальной загрузки: Spartan 2 (XC2S200_5_PQ208) = 99% Внутренняя рабочая частота 65.536 МГц Работает без проблемм. Не надо бояться их загружать, бойтесь лучше gated clock :), хотя без них иногда никак.
  20. А wildcard воспользоваться? Написать в .ucf NET "*" IOSTANDARD = LVTTL; Круто! Я и забыл что в UCF таким образом можно определять параметры. Это так же означает, что можно сразу же и группы по имени определять. Хорошо, что ты это написал! :) По поводу где определять ограничения в VRL_TOP или в UCF, я считаю, что тут необходимо смотреть на само ограничение, к примеру, назначение пинов я генерю только в UCF, т.к. одно и тоже устройство, я использую как на Spartan2 так и на Spartan3 (так сложилось исторически). Минус ещё задания ограничений в VRL - у каждого синтезатора поддержка атрибутов может отличаться (к примеру, Synplify и ISE XST), поэтому я решил, что атрибуты по возможности переношу в UCF.
  21. Сейчас уже Synplify поддерживает аттрибуты Verilog (*LOC="AR6"*) (*IOSTANDARD="LVTTL"*)? А то я ещё пользуюсь 8.4 и здесь он вроде не поддерживает (хотя я не проверял) :). 4iosifk: Дай ссылку на "См. статью "Между ISE и ViewDraw"" :)
  22. Есть несколько неприятностей, у меня построенна система на MACRO_m4 автоматической связи регистров с программированием и с автоматическим генерированием UCF, Verilog_TOP, т.д. Также у устройства есть стандартные шины, в данном случае некоторые сигналы могут не использоваться и они не описываются в UCF, но в Verilog_TOP они присутствуют и не исключаются (в итоге просто разводятся на любые свободные не используемые пины). Т.к. из документации по Spartan3: У меня получалось, что все "используемые" сигналы в LVTTL, "не используемые" LVCMOS25, вот и не давало нормально развести проект. Исправил в Xilinx PACE (Create Area Constraints) "не используемые" в LVTTL. И все прошло как надо. Для себя вижу, что необходимо дорабатывать систему генерации проекта.
  23. По умолчанию при программировании Spartan2 ISE ставит все IOB в LVTTL, в Spartan3 ISE по умолчанию ставит в LVCMOS25. Как сделать по умолчанию в SPARTAN3 все выходные сигналы LVTTL? И не мучаться с назначением в UCF каждого пина в установку LVTTL, как-то этот вопрос ребята из Xilinx не продумали...
  24. ИКМ-15

    Во, какие мы все вместе молодцы!!! :) Заодно и ответили на третий вопрос: А это значит, пока идет фреймовая метка (110), мы храним предыдущее значение кода до неё, я ведь правильно понял? :)
  25. ИКМ-15

    4 cdg: С прошлыми вопросами уже окончено, догадался как происходит. Знатоки, помогите лучше со следующими моментами: 1) Другие биты в нулевом тайм-слоте кодируются по XOR (мультифреймовая, сигнализация, резерв) ? 2) И ещё заодно подскажите чем заполнять биты сигнализации и резервный бит, если она не используется и мы полностью генерим нулевой тайм-слот, есть какое-либо правило? 3) И если фреймовая метка не кодируется, то первый бит первого таймслота по XOR какое состояние берет, то что было перед фреймовой меткой или какое-то фиксированное число?
×
×
  • Создать...