_ANDREW 0 21 октября, 2010 Опубликовано 21 октября, 2010 · Жалоба Здравствуйте. Подскажите пожалуйста, я сгенерировал в MIG контроллер DDR3, сделал ВСЁ по мануалу (ug406) топом сделал testbanch из папки design_example/sim и попытался всё это дело просимулировать в modelsim6.5. Результаты весьма омрачающие... 1) модель памяти MIG генерирует ТОЛЬКО на верилоге. Я в верилоге не пишу, и поэтому так и не понял, почему modelsim пишет что 2001 редакция верилога не понимает глобальное объявление parametеr? и не понимает вставки 'include. A MIG всё делает с глобальным объявлением параметров. Пример (102,103,104,,,,,126,127,128 - номер строк) файл ddr3.v ............ 102 `include "ddr3_model_parameters.vh" 103 104 parameter check_strict_mrbits = 1; parameter check_strict_timing = 1; parameter feature_pasr = 1; parameter feature_truebl4 = 0; // text macros `define DQ_PER_DQS DQ_BITS/DQS_BITS `define BANKS (1<<BA_BITS) `define MAX_BITS (BA_BITS+ROW_BITS+COL_BITS-BL_BITS) `define MAX_SIZE (1<<(BA_BITS+ROW_BITS+COL_BITS-BL_BITS)) `define MEM_SIZE (1<<MEM_BITS) `define MAX_PIPE 4*CL_MAX // Declare Ports input rst_n; input ck; input ck_n; input cke; input cs_n; input ras_n; input cas_n; input we_n; 126 inout [DM_BITS-1:0] dm_tdqs; 127 input [bA_BITS-1:0] ba; 128 input [ADDR_BITS-1:0] addr; 129 inout [DQ_BITS-1:0] dq; inout [DQS_BITS-1:0] dqs; inout [DQS_BITS-1:0] dqs_n; output [DQS_BITS-1:0] tdqs_n; input odt; ...... и т.д. файл ddr3_model_parameters.vh содержит такие строки parameter DM_BITS = 1; // Set this parameter to control how many Data Mask bits are used parameter ADDR_BITS = 14; // MAX Address Bits parameter ROW_BITS = 14; // Set this parameter to control how many Address bits are used parameter COL_BITS = 11; // Set this parameter to control how many Column bits are used parameter DQ_BITS = 4; // Set this parameter to control how many Data bits are used **Same as part bit width** parameter DQS_BITS = 1; // Set this parameter to control how many Dqs bits are used при этом моделсим пишет # ** Error: F:/PROJECTS/MMIG/ipcore_dir/ddr3/example_design/sim/ddr3_model.v(102): Cannot open `include file "ddr3_model_parameters.vh". # ** Error: F:/PROJECTS/MMIG/ipcore_dir/ddr3/example_design/sim/ddr3_model.v(126): Undefined variable: DM_BITS. # ** Error: F:/PROJECTS/MMIG/ipcore_dir/ddr3/example_design/sim/ddr3_model.v(127): Undefined variable: BA_BITS. # ** Error: F:/PROJECTS/MMIG/ipcore_dir/ddr3/example_design/sim/ddr3_model.v(128): Undefined variable: ADDR_BITS. # ** Error: F:/PROJECTS/MMIG/ipcore_dir/ddr3/example_design/sim/ddr3_model.v(129): Undefined variable: DQ_BITS. # ** Error: F:/PROJECTS/MMIG/ipcore_dir/ddr3/example_design/sim/ddr3_model.v(130): Undefined variable: DQS_BITS. # ** Error: F:/PROJECTS/MMIG/ipcore_dir/ddr3/example_design/sim/ddr3_model.v(137): Undefined variable: TDLLK. # ** Error: F:/PROJECTS/MMIG/ipcore_dir/ddr3/example_design/sim/ddr3_model.v(166): Undefined variable: BL_BITS. короче не видит 'include Кто нибудь знает почему, и как выкрутиться?? Заранее спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AJIEKCEu 0 21 октября, 2010 Опубликовано 21 октября, 2010 · Жалоба Я ничего не понимаю в верилоге, но предположу, что вот эта строка: # ** Error: F:/PROJECTS/MMIG/ipcore_dir/ddr3/example_design/sim/ddr3_model.v(102): Cannot open `include file "ddr3_model_parameters.vh". обозначает, что симулятор не нашел файл ddr3_model_parameters.vh там где ожидал его найти, а соответственно не смог взять из него параметры. Разбирайтесь с путями. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_ANDREW 0 21 октября, 2010 Опубликовано 21 октября, 2010 · Жалоба я в верилоге тоже не очень, но все эти файлы создаёт COREGENERATOR, так что не с путями проблема. но что бы перепробовать всё, я ему полный путь прописывал, всё равно ругается.. :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AJIEKCEu 0 21 октября, 2010 Опубликовано 21 октября, 2010 · Жалоба http://dbaspot.com/forums/arch/253795-newb...es-verilog.html Пишут: Thanks for the help. That enabled me to get it working. I moved the `include after the port definitions and that fixed ISE problem. I changed the properties on each .V source file to include the directory where the include file was located (even though it was the same directory as the source .v files). This fixed the ModelSim problem. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_ANDREW 0 21 октября, 2010 Опубликовано 21 октября, 2010 · Жалоба Спасибо прописал ему полный путь `include "F:/PROJECTS/MMIG/ipcore_dir/ddr3/example_design/sim/ddr3_model_parameters.vh", моделсим его скушал, но то что было описано в ddr3_model_parameters.vh он так и не увидел... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AJIEKCEu 0 22 октября, 2010 Опубликовано 22 октября, 2010 · Жалоба Ну, чем мог. Ждем гуру моделсима :) Я с ним не работаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shtirlits 0 22 октября, 2010 Опубликовано 22 октября, 2010 · Жалоба может быть его скопировать в каталог проекта modelsim ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kuzmi4 0 22 октября, 2010 Опубликовано 22 октября, 2010 · Жалоба 2 _ANDREW заархивируте ваш проект и выложите, а то можно долго телепатировать Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SFx 0 22 октября, 2010 Опубликовано 22 октября, 2010 · Жалоба У вас инклюде файл не подключается. перед запуском компиляций введите команду pwd путь который будет указан должен содержать include file ddr3_model_parameters.vh а еще проще засунуть вместо строчки этой сам файл в ручную, как то сам так делал когда с DDR1 разбирался, чтоб не тратить время на разбирательство откуда ногирастут у этих проблем. еще возможно надо будет предать како нито define вместе с командой vsim Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shtirlits 0 22 октября, 2010 Опубликовано 22 октября, 2010 · Жалоба Скажите, а для какой микросхемы вы генерируете ядро? Попробовал для virtex-6 и для spartan-6 сделать DDR3 на VHDL - делает, если попросить в меню CORE Generator Project->Project Options->Generation-> Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_ANDREW 0 22 октября, 2010 Опубликовано 22 октября, 2010 · Жалоба Всем спасибо за помощь!! Сегодня поковырял снова эту проблему, и выяснил, что моделсим не видит 'ifdef, а весь файл ddr3_model_parameters.vh написан под несколько микросхем памяти а конкретная выбирается с помощью условий ifdef `ifdef QUAD_RANK `define DUAL_RANK // also define DUAL_RANK parameter CS_BITS = 4; // Number of Chip Select Bits parameter RANKS = 4; // Number of Chip Selects `else `ifdef DUAL_RANK parameter CS_BITS = 2; // Number of Chip Select Bits parameter RANKS = 2; // Number of Chip Selects `else parameter CS_BITS = 2; // Number of Chip Select Bits parameter RANKS = 1; // Number of Chip Selects `endif `endif я убрал эту универсальность, всё сделал под конкретную микруху без ifdef и всё заработало... но это не порядок.. надо разбираться... на следующей неделе встречаюсь с гуру моделсима... у меня к нему масса вопросов... так что разберусь - отпишусь!!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться