Перейти к содержанию
    

Модель DDR2 SDRAM на VHDL

Вот какой-то странный получился замкнутый круг.

1. Micron дает модели для DDR2 на verilog.

2. Проект у меня весь написан на VHDL.

3. ModelSim ALTERA STARTER EDITION 6.5b пишет, что: ALTERA version supports only a single HDL

4. Попытка найти транслятор Verilog -> VHDL привела к SynaptiCAD'у, который в evaluation виде конвертировать модель отказывается.

5. Modelsim, который не Altera edition, скорее всего смешанный проект поймет, но его надо будет учить всем либам альтеры. Но для этого надо искать и ставить полный modelsim.

 

Вопрос: какой самый простой способ подружить проект с моделью?

 

И еще вопрос вдогонку. Вот пока что все застопорилось на глупостях со смешанным проектом. Но есть еще там такой момент, что транслятор верилога сделал интерфейс модуля с сигналами типа vl_logic, vl_logic_vector, а не std_logic, std_logic_vector. Я проглядывал доки по-диагонали и так и не понял, как их между собой дружить? Если просто подрубить библиотеку verilog к тестбенчу и оставить декларацию компонента с типами vl_logic, то он такое транслировать отказывается, так как типы то разные. Кроме того, в vl_types.vhd нет функций приведения одного к другому, так что и ручками не удастся привести. Попробовал просто тихонько подменить в декларации компонента vl_* на std_*, но думаю, что при связывании реально могут быть какие-нибудь грабли. Есть ли какое средство для этого?

Изменено пользователем Hoodwin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 Hoodwin

как workaround: скомпилить Verilog модель с нужными настройками отдельно в какую нить либу, а потом оттуда(из скомпиленой либы, _primary.vhd для инстантиации) вызывать в своём VHDL :laughing:

Но я бы на вашем месте задумался над работой с SE версией ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Не-а, не все так просто. Вот смотрю я сейчас доку на SE, там есть целый раздел про Mixed-Language Simulation. Так вот, ни одной из описанных там утилит вроде vgencomp или vopt, в версии ModelSim Altera 6.5 просто нет. Из чего я делаю вывод, что это всё действительно урезано, и глупо его так обманывать. Проблема не в том, чтобы скомпилировать юнит, а в том, чтобы их связать между собой.

2. С полной версией SE я раньше работал, но то было во времена SE 5.7g. Дома он еще стоит. Правда тогда были модели памяти на VHDL, не то что ныне. Ну и возня с моделью памяти там убавится, зато возня со сборкой всех библиотек для Альтеры и подключение их к проекту добавится. Возможно так и придется поступить. Только SE наверное, дорогой. Я поэтому и ищу вариант попроще...

 

Пока, видимо, придется доки почитать внимательно на SE.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так вам не нужны vgencomp или vopt ;)

Скрипт компилирования основных либ (написан на скорую руку для привередливого очень проекта) прицепил для примера - там в принципе ничего нет сложного

altera.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Судя по доке на SE, vgencomp нужен. Хотя подозреваю, что он просто копирует на экран содержимое файлика work\<entity_name>\_primary.vhd, и просто заменяет в нем типы сигналов. Но его у меня нет, так что уверенно сказать не могу.

 

А не знает никто, последний modelsim altera поддерживает смешанные проекты?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет

...

does not support designs that are written in a combination of VHDL and Verilog language, also known as mixed HDL. Mixed HDL support is available in the PE and SE versions of ModelSim from Mentor Graphics.

...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот какой-то странный получился замкнутый круг.

1. Micron дает модели для DDR2 на verilog.

2. Проект у меня весь написан на VHDL.

 

У Hynix лежат VHDL модели DDR2 SDRAM, еще есть FMF...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

EugeneS

Честно говоря, был уже на Hynix, там у них лежат DDR2 на 1Gb и 2Gb. У первой вообще модели HDL нет, а у второй - верилог. Может там где-то еще искать надо?

 

Что касается FMF, то там нашел именно для своей памяти 64Mx16, спасибо!

Но.

1) Там интерфейс вообще без векторов, все на отдельных std_logicах, радостно связывать с верхним уровнем. Не фатально, конечно.

2) Не совсем понятно, что такое файл параметров тайминга формата ftm, как его применять? Сама модель там построена с кучей generic, которые по умолчанию все нулевые, а реальные - в ftm файлах. Хочется в перспективе гонять нормальный тайминг SDRAM c аннотированным нетлистом от Quartus.

 

А, описание FTM окопалось там же, на сайте FMF:

What are the .ftm files and how do I make use of them?

 

FMF are technology independent. By this we mean they include no timing information that would bind them to a particular technology or speed grade. Instead, timing information resides in a separate file with the same name but an extention of ".ftm" or, ".ftmv" for Verilog models.

 

Thease timing files contain chunks of SDF (Standard Delay Format) code embedded in XML. They are designed to be both hand editable and machine readable.

 

The intended method of using the ftm files is through the use of the mk_sdf script which can be found, with instructions, in the FMF Tools area. mk_sdf will read a VHDL netlist and create an SDF file that can be read by a standard simulator to backannotate timing values into the simulation. However, the ftm files may also be used as a data source by those who prefer to use "cut and paste" to create their SDF files.

 

Изменено пользователем Hoodwin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Честно говоря, уж лучше симулятор, поддерживающий смешанные проекты, чем конвертер. После конвертера нет никаких гарантий, что получится идентичная модель, даже если она будет собираемой без ручной доводки.

Пока что надо пройти до конца вариант с VHDL моделью от FMF. Там довольно навороченная модель, но пока затык с sdf для нее. Что-то не выходит у меня правильно вызвать скрипт mk_sdf, он почему-то пытается парсить проект моделсима (которого нет), вместо того, чтобы обработать ftm файл. А так как перла я не знаю, то разбираться со скриптом долго.

 

Посему вопрос такой. Есть ли у кого-нибудь опыт ручного превращения ftm в sdf, в соответствии с вот этим:

However, the ftm files may also be used as a data source by those who prefer to use "cut and paste" to create their SDF files.

Я посмотрел глазками на то и на другое, видно, что SDF имеет заголовок, которого в ftm нет. Видимо, заголовок нужно пришить ручками, а где его взять?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

зато возня со сборкой всех библиотек для Альтеры и подключение их к проекту добавится.

Ну, это не возня. Вопрос этот многократно обсуждался, скрипты публиковались. К тому же в свежих версиях квартуса имеется готовый компилер edа'шных библиотек, так что все решается одной кнопкой.

 

Только SE наверное, дорогой. Я поэтому и ищу вариант попроще...

"Все уже украдено до нас!" (це) Куда уж проще... :)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А в 6.5 SE PLUS все работает без проблем :) Пакостят, как могут...

 

Придется теперь кор отлаживать...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чтобы тему не открывать новую...

Есть ли в природе простые модели памяти DDR2? Так-то у меня тоже подключены микроновские Verilog, но они очень ресурсотребовательные, и там пикосекундная точность. В итоге моделирование сильно тормозит.

Очень хочется для проверки всей системы, кроме контроллера памяти, использовать простую модель. Контроллер же, так и быть, потерпеть можно и нужно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чтобы тему не открывать новую...

Есть ли в природе простые модели памяти DDR2? Так-то у меня тоже подключены микроновские Verilog, но они очень ресурсотребовательные, и там пикосекундная точность. В итоге моделирование сильно тормозит.

Очень хочется для проверки всей системы, кроме контроллера памяти, использовать простую модель. Контроллер же, так и быть, потерпеть можно и нужно.

 

Добрый день.

В одном из проектов подключал DDR2 к Virtex5 и использовал такую модель:

 

у файла ddr2_model_parameters.v расширение поменять на vh

 

в моделсимовском .do файле вписывается строка

vlog +incdir+. +define+x512Mb +define+sg37E +define+x16 "ddr2_model/ddr2_model.v", определяющая параметры DDR

 

Может Вам пригодится.

Удачи.

ddr2_model.v

ddr2_model_parameters.v

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...