Worldmaster 0 2 августа Опубликовано 2 августа · Жалоба Здравствуйте. А кто нибудь знает как можно в тестбенче задать рандомное значение ожидания? После каждой операции чтения я задаю wait for 100ns; А как сделать чтобы задержка выбиралась на угад от 100ns до допустим 2000us. ? А то какая то фигня.. при статичной задержке вроде все норм, но в железе как то все не очень стабильно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 222 3 августа Опубликовано 3 августа · Жалоба LMGFY - https://vhdlwhiz.com/random-numbers/ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 26 3 августа Опубликовано 3 августа · Жалоба В Verilog'е есть системная функция $random(). Полагаю, что-то похожее должно быть и в языке VHDL. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gin 0 7 августа Опубликовано 7 августа · Жалоба В 02.08.2024 в 16:44, Worldmaster сказал: А кто нибудь знает как можно в тестбенче задать рандомное значение ожидания? вот небольшой пример как я в тестбенче задавал случайную паузу: rd_pause_proc : process --uniform variable seed1 : positive := 951; -- seed1 values for random generator variable seed2 : positive := 532; -- seed2 values for random generator variable rand : real; -- random real-number value in range 0 to 1.0 -- variable p : natural := 0; begin . . . UNIFORM(seed1, seed2, rand); p := integer(rand*real(4)); wait for per_rd*p; req_pause <= '1'; wait for per_rd; . . . end process; процедура UNIFORM описана в пакете ieee.math_real use IEEE.math_real.all; В этом примере пауза была от 0 до 3 тактов клока периодом per_rd Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Worldmaster 0 7 августа Опубликовано 7 августа · Жалоба В 07.08.2024 в 12:06, gin сказал: процедура UNIFORM описана в пакете ieee.math_real Спасибо. Попробуюю Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться