NSergeevich 0 June 9, 2015 Posted June 9, 2015 · Report post ну как сказать... :) некоторым и воды попить невыносимо:)... делается так (xilinx ise) 1. Делаете какой-то модуль с входами и выходами 2. Жмете добавить модуль и там выбираете verilog test fixture как тип модуля, потом он спросит чего тестировать, выбираете ваш первый верилог модуль. 3. После этого идете на закладку simulation (там есть выпадающийсписок синтез - симуляция) 4. В созданном файле пишите тестовое действие типа forver begin clk = ~clk; #5; end; это делает клок с периодом 10 нСек. таким же макаром описываете остальные сигналы #N - задержка между действиями. Я обычно клок оставляю в одном блоке initial, чтобы он в forevere крутился, а остальные сигналы в копии initial уже последовательно друг за другом через паузы #N Создав все тестовые воздействия, жамкаете там где раньше было синтезить проект в режиме симуляции там находиться симулить, жамкается, если никаких ошибок нет то создастся файл, запуститься моделсим и получите времянки и счастие! Не симулируется... Какаято ошибка странная ERROR:Simulator:776 - Signal SIGSEGV received Quote Share this post Link to post Share on other sites More sharing options...
iosifk 3 June 9, 2015 Posted June 9, 2015 · Report post Не симулируется... Какаято ошибка странная ERROR:Simulator:776 - Signal SIGSEGV received Вы меня не перестаете удивлять... Клоки в симуляции не генерятся? Ведь я все написал в "Кратком Курсе" про тестбенчи, и тестовые примеры и картинки Моделсима... Как говорится - "взял и прочел"... Так нет же, мучаете Голикова по ерунде какой-то... И уже столько времени, что за это время главу про работу с МоделСимом можно было 5 раз прочитать... Quote Share this post Link to post Share on other sites More sharing options...
NSergeevich 0 June 9, 2015 Posted June 9, 2015 · Report post Вы меня не перестаете удивлять... Это-же хорошо =) Как говорится глупых вопросов не бывает. Клоки в симуляции не генерятся? Ведь я все написал в "Кратком Курсе" про тестбенчи, и тестовые примеры и картинки Моделсима... Как говорится - "взял и прочел"... Так нет же, мучаете Голикова по ерунде какой-то... И уже столько времени, что за это время главу про работу с МоделСимом можно было 5 раз прочитать... Вообще что-бы я не прописывал в тестбенче, какие-бы "Add stimulus" не ставил появляется все время одна и та же ошибка -> ERROR:Simulator:776 - Signal SIGSEGV received На форуме Xilinx-а я не нашел однозначного ответа. Что-то типа бага. Quote Share this post Link to post Share on other sites More sharing options...
iosifk 3 June 9, 2015 Posted June 9, 2015 · Report post Вообще что-бы я не прописывал в тестбенче, какие-бы "Add stimulus" не ставил появляется все время одна и та же ошибка -> ERROR:Simulator:776 - Signal SIGSEGV received На форуме Xilinx-а я не нашел однозначного ответа. Что-то типа бага. Я же предлагал Вам показать прямо в скайпе как делается симуляция... Помнится, Вы отказались. Или я не прав? Quote Share this post Link to post Share on other sites More sharing options...
serjj1333 0 June 9, 2015 Posted June 9, 2015 · Report post Не симулируется... Какаято ошибка странная ERROR:Simulator:776 - Signal SIGSEGV received Это ж что нужно запустить там такого, чтобы симулятор ошибку сегментации схватил?.. Quote Share this post Link to post Share on other sites More sharing options...
NSergeevich 0 June 10, 2015 Posted June 10, 2015 · Report post Я же предлагал Вам показать прямо в скайпе как делается симуляция... Помнится, Вы отказались. Или я не прав? Не было такого =)) Quote Share this post Link to post Share on other sites More sharing options...
NSergeevich 0 June 10, 2015 Posted June 10, 2015 · Report post Правильно ли я применил ODDR2 примитив? ODDR2 #( .DDR_ALIGNMENT("NONE"), // Sets output alignment to "NONE", "C0" or "C1" .INIT(1'b0), // Sets initial state of the Q output to 1'b0 or 1'b1 .SRTYPE("SYNC") // Specifies "SYNC" or "ASYNC" set/reset ) ODDR2_inst1 ( .Q(data[0]), // 1-bit DDR output data .C0(clk), // 1-bit clock input .C1(~clk), // 1-bit clock input .CE(CE), // 1-bit clock enable input .D0(emacphytxd[0]), // 1-bit data input (associated with C0) .D1(emacphytxd[4]), // 1-bit data input (associated with C1) .R(R), // 1-bit reset input .S(S) // 1-bit set input ); Такое описание ~clk для 180 градусов направленного клока годится? А на CE я прописал wire CE; assign CE = 1; Quote Share this post Link to post Share on other sites More sharing options...
serjj1333 0 June 10, 2015 Posted June 10, 2015 · Report post Такое описание ~clk для 180 градусов направленного клока годится? А на CE я прописал wire CE; assign CE = 1; Какая у вас частота клока? вообще все частоты лучше делать через PLL/DCM + есть специальные примитивы, которые позволяют управлять клоками, если так надо. Прямые операции с клоковым сигналом крайне нежелательны. Quote Share this post Link to post Share on other sites More sharing options...
NSergeevich 0 June 10, 2015 Posted June 10, 2015 · Report post Какая у вас частота клока? вообще все частоты лучше делать через PLL/DCM + есть специальные примитивы, которые позволяют управлять клоками, если так надо. Прямые операции с клоковым сигналом крайне нежелательны. У меня клок 125mhz. Получается путем использования Xilinx Clocking Wizard из 40 mhz на плисине. Quote Share this post Link to post Share on other sites More sharing options...
serjj1333 0 June 10, 2015 Posted June 10, 2015 · Report post У меня клок 125mhz. Получается путем использования Xilinx Clocking Wizard из 40 mhz на плисине. Ну и сделайте сразу 2 клока с разностью фаз в 180 градусов. А писать ( ~clk ) нельзя. Операции с высокочастотными клоками допускаются только с применением специальных примитивов. Quote Share this post Link to post Share on other sites More sharing options...
NSergeevich 0 June 10, 2015 Posted June 10, 2015 · Report post Ну и сделайте сразу 2 клока с разностью фаз в 180 градусов. А писать ( ~clk ) нельзя. Операции с высокочастотными клоками допускаются только с применением специальных примитивов. Действительно, так будет убедительнее. Quote Share this post Link to post Share on other sites More sharing options...
iosifk 3 June 10, 2015 Posted June 10, 2015 · Report post Не было такого =)) ОК! Предлагаю... Рабочий стол сейчас и в скайпе можно показывать.... Quote Share this post Link to post Share on other sites More sharing options...
Bad0512 2 June 11, 2015 Posted June 11, 2015 · Report post Ну и сделайте сразу 2 клока с разностью фаз в 180 градусов. А писать ( ~clk ) нельзя. Операции с высокочастотными клоками допускаются только с применением специальных примитивов. В данном конкретном случае можно. В примитиве OSERDES2 внутри на обоих клоковых входах есть инверторы с мультиплексором обхода. Это можно посмотреть в XDE. Quote Share this post Link to post Share on other sites More sharing options...
serjj1333 0 June 11, 2015 Posted June 11, 2015 · Report post И если написать так, то он автоматически их задействует и не будет ставить доп логику в клоковый путь? Quote Share this post Link to post Share on other sites More sharing options...
NSergeevich 0 June 11, 2015 Posted June 11, 2015 · Report post ОК! Предлагаю... Рабочий стол сейчас и в скайпе можно показывать.... Надобность в симуляции уже отпала. Я правильно применил ODDR2 примитив и у меня правильно дата стала преобразовываться из 8 битной шины в 4-х битную для RGMII. А проверил я это осциллографом. Появилась новая проблема и очень странная. Если я компилирую весь проэкт (синтезис) а дату которая должна идти на PHY биндю (в ucf) на диоды то MAC пропускает все данные которые я ему на вход педалю. !!!А если я дату биндю на ножки PHY (собственно как и нужно) то MAC не пропускает дату которую я ему на вход отдаю. Отдает только преамбулу и Pad с FCS. Что за странная вещь??? Quote Share this post Link to post Share on other sites More sharing options...