Довідка про Simulate проблеми

M

Matrix_YL

Guest
Привіт всім Моя Verilog модуль може бачити хвилю випробувань та очікувані результати моделювання коректно в "Simulate Поведінкова модель". але коли я роблю "Simulate після Перекласти Verilog моделі", Очікувані результати моделювання сильно відрізняється Чи можете ви розповісти, що сталося з ним? спасибі!
 
Будь ласка, визначте "зовсім іншою". У пост-симуляції маршруту Ви побачите всі тимчасові затримки і перекоси, але в цілому функції логіка повинна бути такою ж, як ваш поведінковий моделювання, якщо Ви висуваєте чіп занадто швидко.
 
Перевірте theSetUp / Утримання порушення Попередження під час моделювання. Крім того, Вам потрібно запустити ур моделювання 100 нс, після чого застосувати вхідних векторів. Це 100 нс для глобальної Скидання Set. Там можуть бути й інші причини, які повинні стати більш розбір проблеми.
 
Я хочу, щоб мій вихід виступу [16:00], коли pre_ld_Frame_out дорівнює 1, а вихід 17'bz_zzzz_zzzz_zzzz_zzzz коли pre_ld_Frame_out дорівнює 0 або вихідний адресу мого по 45ns, коли робити Simulate Behaviorl Модель нормально зробити Simulate після Перекласти Verilog модель виходу [ 16:00] завжди 17'bz_zzzz_zzzz_zzzz_zzzz я hople ви можете побачити мої модуль для більш докладної інформації!
 
[Цитата], якщо = 17'bz_zzzz_zzzz_zzzz_zzzz (pre_ld_Frame_out!), Інакше починають = адреса, № 7 DOUT = 1'b1, # 45 = 17'bz_zzzz_zzzz_zzzz_zzzz; DOUT = 1'b0; кінець кінець [/ цитата] 1) відстрочка не синтезованого, U може отримувати попередження для цього. 2) = 17'bz_zzzz_zzzz_zzzz_zzzz; => буду робити = адресу; => буду робити U т отриманні Моделювання невідповідність, як всякий раз, коли pre_ld_Frame_out = 0 = 17'bz_zzzz_zzzz_zzzz_zzzz; DOUT = 1'b0; має бути відповідь . Чи є це випадок?
 
Є два картина -----> мій Simulate результати виконаної Модель Імітація Behaviorl і Simulate після Перекласти
 
ОК .. Так Ура проблема, якщо я отримую це правильно в тому, що сигнал "" не оновлюється з «Адреса» в пост-Xlate моделювання. Чи так це? Ну, і просто робити проста вправа, яка може очистити ур це сумнів і дам у більше сумнівів, але я можу закластися, що будете реально допомогти У. Ви просто зміна "№ 45 = 17'bz_zzzz_zzzz_zzzz_zzzz;" перед "адреса = ; »в завжди @ (адреса) блоку і зробити ур моделювання.
 
Я знаходжу це, коли робити Simulate після Перекласти Verilog моделі завжди є ці попередження УВАГА: Xst: 854 - "read_a_frame1.v" рядок 24: Ігнорується первісному заяві. УВАГА: Xst: 916 - "read_a_frame1.v" рядок 63: Затримка ігнорується для синтезу. Я хочу знати, чому? і чи буде Simulate після Перекласти Verilog модель завжди ігнорується Затримка Спасибі!
 
Це не симулятор так ігноруючи затримки заяви, це фізичний синтезатор і місця-і-маршрут інструментів. FPGA / CPLD не містить довільних ліній затримки, тому він не може реалізувати свої просив затримки. Це фундаментальна проблема. Вам потрібно знайти інший спосіб (може бути, регістр зсуву або, можливо, DLL) для генерації затримки ви хочете. Ці початкові попередження заяві, засмучує. FPGA / CPLD * * могли реалізувати більшість початкових умов, але синтез інструментів просто проігнорувати їх. Можливо, коли-небудь інструменти будуть ставати розумнішим.
 
[Цитата = echo47]. Вам потрібно знайти інший спосіб (може бути, регістр зсуву або, можливо, DLL) для генерації затримки ви хочете. [/ Цитата] Не могли б ви дати мені кілька прикладів, щоб здійснити мою модуля! спасибі вам велике!
 
Я не можу дати корисні приклади, бо вони будуть залежати у великій мірі на ваш існуючий дизайн, тактові частоти, тип мікросхем, і як далеко ви можете відхилятися від 45ns мети. Може бути, у вас є 20 МГц годинник. Може бути, ви можете просто передати ваш сигнал через одну частоту D-флопе, щоб отримати 50 нс затримкою. Може бути, 50 нс знаходиться досить близько до 45ns. Може бути, пристрій містить DLL. Може бути, ви можете налаштувати один з них, щоб генерувати нові годинники, які спотворені з вашої тактового генератора на 45ns. Може бути, ви можете використовувати його для створення своїх затримкою сигналу. Може бути, DLL джиттера не викличе жодних проблем. Занадто багато maybes! Я хотів би спробувати перебудувати часу так все відбувається красивим і чистим на тактовій краю. Це іноді вимагає збільшення тактовою частотою.
 
Дякуємо echo47 Я знаю, ви в жодному разі! Я просто хочу, щоб контролювати SRAM для читання data.The SRAM READ Терміни вимагають, щоб я це Затримка Я хочу використовувати Xilinx Spartan 2 здійснити мою дизайн! Я можу дати моїй SRAM ПРОЧИТАЙТЕ ТЕРМІНИ CE OE UB LB знаходиться під контролем державної машиною, тому я просто використовувати DOUT повідомити дані готові можна вийти, якщо = 17'bz_zzzz_zzzz_zzzz_zzzz (pre_ld_Frame_out!), Інакше починають = адресу, / / коли умова, якому задовольняє видавати адресу # 7 DOUT = 1'b1, / / коли Toha закінчилася, Dout повідомити дані готові # 45 = 17'bz_zzzz_zzzz_zzzz_zzzz; / / очищаємо DOUT адреса = 1'b0; / / очищаємо кінці DOUT
 
Мені цікаво, чому ви повинні з плаваючою точкою (значення Z) шина адреси. Ви обміну автобус з іншими пристроями? Якщо ваш SRAM пов'язана тільки з ПЛІС, то ви, можливо, намагається занадто сильно, щоб зробити ваші сигнали виглядають точнісінько як лист даних SRAM. Вам не потрібно плисти шина адреси, або турбуватися про Toha, або зніміть DOUT до нуля, або чекати саме 45ns. Типовий спосіб читання від статичного ОЗУ є вихід адреси і керуючі сигнали на один такт, а потім застебнути читати дані на більш пізній час (після ТАА). Якщо вам дійсно потрібно плисти шина адреси, то ви можете зробити це в той же час ви засувку читання даних. Але зазвичай тільки сигнал, який необхідно плавали в шину даних, тому ви можете перемикатися від написання до читання.
 
Дякуємо echo47 Я хочу використовувати ПЛІС керувати двома модулі SRAM і той же час, коли один SRAM читав іншу SRAM писав! коли кадр був схопив дві функції SRAM'S змінюють один одного [цитата] типовий спосіб читання з статичної SRAM є для виведення адреси і керуючі сигнали на один такт, а потім застебнути читати дані на більш пізні години (після ТАА). Якщо вам дійсно потрібно плисти шина адреси, то ви можете зробити це в той же час ви засувку читання даних. Але зазвичай тільки сигнал, який необхідно плавали в шину даних, тому ви можете перемикатися від написання до читання [/ цитата] Не могли б ви дати мені кілька прикладів?
 
Я ніколи не бачив автономних приклад інтерфейс SRAM. Пам'ять часу циклу, як правило, об'єднані в загальну структуру проекту, тому інтерфейс SRAM стає майже нульовим рядків коду. Можливо, є десь підручник, який демонструє основні читання / запису понять. Хто-небудь бачив один?
 
Привіт echo47 [цитата] модуль верхнього (CLK, CLKOUT); параметр дільника = 25000000 / 400 / / має бути парне число вхідних CLK; рег [15:0] Count = 0; вихід рег CLKOUT = 0; завжди @ (posedge CLK) починають вважати
 
Прохання роз'яснити, "втрачається хвилі CLKOUT = Stx". Які "одне і те ж", що відбувається? Якщо я правильно зрозумів ваше змін: [код] модуль верхнього (CLK, граф, CLKOUT); параметр дільника = 25000000 / 400 / / має бути парне число вхідних CLK; ГСС [15:0] Count = 0; вихід рег CLKOUT = 0; завжди @ (posedge CLK) починають вважати
 
Дякуємо echo47 Дозвольте мені ще раз! щоб переглянути лічильник запустити я спеціально створеної вважатися вихід!
 
Я бачу твою CLKOUT переходу на X. Так не буває, коли я імітувати модуль, який я написав пару повідомлень назад. Мій "вважати" є вихідний модуль теж. Будь ласка, спробуйте мій модуль, або показати нам свій код. Також повідомте нам терміни вашого результатів моделювання - ви обрізати його з ваших JPEG. Ось перші кілька рядків із моїх після симуляції маршруту. Початковий 100 нс затримка викликана глобальним імпульс скидання чіпа.
 
Дякуємо echo47 Я знав, що трапилося зі мною! Коли я використовую 40ns тактовою інформації про час, тому я отримати неправильний результат! коли я використовую годинник, як ви робили 10 нс результаті таке ж право, як ви! `Терміни 1 нс / 1ps я використав, але я до сих пір не знаю, чому я значення за замовчуванням отримаєте неправильний результат! На щастя, я використовував 146ns отримати правильний результат! велике спасибі [/ цитата]
 

Welcome to EDABoard.com

Sponsor

Back
Top