AnatolySh 0 15 октября, 2018 Опубликовано 15 октября, 2018 · Жалоба 1 hour ago, Vengin said: На тот момент был "несвой". Теперь уже обновился. И решили все свои задачи Active-HDL-ом? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vengin 0 17 октября, 2018 Опубликовано 17 октября, 2018 · Жалоба В 15.10.2018 в 18:02, AnatolySh сказал: И решили все свои задачи Active-HDL-ом? Не совсем. Во-первых до того как не мог пользоваться новым (10.4) Active-HDL уже "перевёл" симуляционную часть проекта в ModelSim и, в принципе, пока им и пользуюсь. Когда получил доступ к Active-HDL 10.4 обновил проект, проверил симуляцию, но там не всё так гладко. К примеру, мне не удалось скомпилить все симуляционные библиотеки IP cores Vivado 2017.4 - автоматом они не копмилятся (вроде подразумевается, что их нужно качать с сайта Aldec готовым инсталляционным пакетом, но как будто это доступно только с официальным софтом). Попытался компилить вручную (на основе скрипта компиляции корок для ModelSim) - в основном скомпилилось, но пару корок (штук 7) были с ошибками. Пока ещё не знаю, понадобятся ли они для симуляции в Active-HDL, т.к. процесс миграции с Quartus в Vivado ещё идёт. В общем пока для данного проекта в основном пользуюсь ModelSim, иногда проверяю в Active-HDL. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AnatolySh 0 23 октября, 2018 Опубликовано 23 октября, 2018 · Жалоба On 10/17/2018 at 7:24 AM, Vengin said: что их нужно качать с сайта Aldec готовым инсталляционным пакетом. Пробуйте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
laknik 0 11 декабря, 2018 Опубликовано 11 декабря, 2018 · Жалоба Доброго времени суток! Никак не могу с помощью ModelSim протестировать проект :( Нашёл на форуме следующий код (делитель входной частоты 50 МГц до 2 Мгц): `timescale 1ns/1ns module divider ( input wire clk50, output reg clk2 ); reg [4:0] counter; reg a,b; always @ (posedge clk50) begin counter <= (counter == 24) ? 0 : (counter + 1); if (counter == 0) a <= ~b; end always @ (negedge clk50) begin if (counter == 13) b <= a; end always @* clk2 = a^b; endmodule Использую следующий testbanch: `timescale 1ns / 1ns module divider_tb(); wire clk2; reg clk50; divider DUT ( .clk2 (clk2 ) , .clk50 (clk50 ) ); // "Clock Pattern" : dutyCycle = 50 // Start Time = 0 ns, End Time = 10 us, Period = 100 ns initial begin repeat(100) begin clk50 = 1'b1; #50 clk50 = 1'b0; #50; // 10 us, repeat pattern in loop. end end initial #20000 $stop; endmodule После запуска RTL simulation наблюдаю следующее (нет изменения clk2): Но если протестировать проект с помощью WFE, то можно наблюдать clk2: Пожалуйста, подскажите как правильно в ModelSim тестировать... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tausinov 0 11 декабря, 2018 Опубликовано 11 декабря, 2018 · Жалоба Не хватает начального значения для счетчика Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
laknik 0 11 декабря, 2018 Опубликовано 11 декабря, 2018 · Жалоба Спасибо, огромное! С таким кодом работает: `timescale 1ns/1ns module divider ( input wire clk50, output reg clk2 ); reg [4:0] counter = 5'b00000; reg a,b = 1'b0; always @ (posedge clk50) begin counter <= (counter == 24) ? 0 : (counter + 1); if (counter == 0) a <= ~b; end always @ (negedge clk50) begin if (counter == 13) b <= a; end always @* clk2 = a^b; endmodule Диаграмма получилась: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 11 декабря, 2018 Опубликовано 11 декабря, 2018 · Жалоба 8 минут назад, laknik сказал: Спасибо, огромное! С таким кодом работает По форме - правильно. Но по технической сути за такое вычисление clk2 в проекте разработчика необходимо приговорить к расстрелу на месте.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
laknik 0 11 декабря, 2018 Опубликовано 11 декабря, 2018 · Жалоба В этой теме обсуждалось... А как спроектировать оптимальнее? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться