Jump to content

    

Модель 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_*, но думаю, что при связывании реально могут быть какие-нибудь грабли. Есть ли какое средство для этого?

Edited by Hoodwin

Share this post


Link to post
Share on other sites

2 Hoodwin

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

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

Share this post


Link to post
Share on other sites

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

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

 

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

Share this post


Link to post
Share on other sites

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

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

altera.zip

Share this post


Link to post
Share on other sites

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

 

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

 

Share this post


Link to post
Share on other sites

Нет

...

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.

...

Share this post


Link to post
Share on other sites
Вот какой-то странный получился замкнутый круг.

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

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

 

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

Share this post


Link to post
Share on other sites

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.

 

Edited by Hoodwin

Share this post


Link to post
Share on other sites

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

Пока что надо пройти до конца вариант с 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 нет. Видимо, заголовок нужно пришить ручками, а где его взять?

Share this post


Link to post
Share on other sites
зато возня со сборкой всех библиотек для Альтеры и подключение их к проекту добавится.

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

 

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

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

 

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites
Чтобы тему не открывать новую...

Есть ли в природе простые модели памяти 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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this