|
|
  |
Memory Interface Generator MIG3.5 от Xilinx |
|
|
|
Oct 21 2010, 19:27
|
Участник

Группа: Участник
Сообщений: 53
Регистрация: 14-03-06
Пользователь №: 15 223

|
Здравствуйте. Подскажите пожалуйста, я сгенерировал в 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
Кто нибудь знает почему, и как выкрутиться?? Заранее спасибо
|
|
|
|
|
Oct 21 2010, 19:31
|
Местный
  
Группа: Свой
Сообщений: 314
Регистрация: 7-12-05
Пользователь №: 11 917

|
Я ничего не понимаю в верилоге, но предположу, что вот эта строка: Цитата(_ANDREW @ Oct 21 2010, 23:27)  # ** 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 там где ожидал его найти, а соответственно не смог взять из него параметры. Разбирайтесь с путями.
|
|
|
|
|
Oct 21 2010, 20:02
|
Местный
  
Группа: Свой
Сообщений: 314
Регистрация: 7-12-05
Пользователь №: 11 917

|
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.
|
|
|
|
|
Oct 21 2010, 20:50
|
Участник

Группа: Участник
Сообщений: 53
Регистрация: 14-03-06
Пользователь №: 15 223

|
Спасибо прописал ему полный путь `include "F:/PROJECTS/MMIG/ipcore_dir/ddr3/example_design/sim/ddr3_model_parameters.vh", моделсим его скушал, но то что было описано в ddr3_model_parameters.vh он так и не увидел...
|
|
|
|
|
Oct 22 2010, 15:03
|
Участник

Группа: Участник
Сообщений: 53
Регистрация: 14-03-06
Пользователь №: 15 223

|
Всем спасибо за помощь!! Сегодня поковырял снова эту проблему, и выяснил, что моделсим не видит '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 и всё заработало... но это не порядок.. надо разбираться... на следующей неделе встречаюсь с гуру моделсима... у меня к нему масса вопросов... так что разберусь - отпишусь!!!
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|