Я использую Cadence по Ethernet EVC, в котором монитор агента сливают на следующих сигналов:Проблема синхронизации симулятора Specman?
. ____________ _____
.clk _____| |__________________|
. ________ _______ ________________ _________
.data __0a____X___07__X_______0b_______X_________
. ^^
It данных образцов при возрастающих и спадающих фронтов тактового сигнала. В приведенном выше примере данные 0x07 являются данными мусора, а допустимыми значениями являются 0xa (повышение clk) и 0xb (clk fall). Тем не менее, монитор является выборкой (для clk fall) 0x7!
Я подозреваю, что это проблема синхронизации синхронного симулятора. Как это можно решить, если это так?
- Simulator - IES 13.10
Ирун 13.10 варианты - (я включу здесь только те, которые я думаю, что может иметь отношение к данному вопросу, а также те, которые я понятия не имею, но то, что их цель)
-nomxindr -vhdlsync +neg_tchk -nontcglitch +transport_path_delays -notimezeroasrtmsg -pli_export -snstubelab
Языки - VHDL (верхний испытательный стенд), Verilog (ИУ), Specman (виртуальная последовательность, Enet и ОСР eVCs)
- времени между 0x07 (слева^в приведенной выше формы сигнала), и задний фронт часы (справа ^) = 0.098ns
Один коллега предложил использовать -sntimescale
, но я до сих пор не могу представить, как это вызывает/будет решать проблему. Любая из этих строк поиска не показывала полезных подсказок, даже те статьи из Cadence: «точность тайм-тайма синхронизации таймера синхронизации»
Удостоверьтесь, что временные рамки и точность одинаковы для ваших VHDL, Verilog, e и т. Д.? '-sntimescale' может помочь, однако я считаю, что этот вариант предназначен только для specman e; вам может потребоваться найти эквивалентный вариант компилятора для VHDL и Verilog.Большинство симуляторов Verilog/SystemVerilog по умолчанию равны 1ns/1ns, поэтому 0.098ns будет округлено до 0. Также могут быть задержки синхронизации в testbench/DUT или возможное неправильное использование блокировки/неблокирования. – Greg
Как создаются ваши события часов Specman? Связаны ли они с той же сетью часов? –
@RossRogers Поскольку это Enet eVC, который собирает информацию о пакете, я предполагаю, что он также использует событие выборки '@ driver.clock'. Эти часы - это те же часы в форме волны. – renvill