Jump to content

    

Altera GDF -> Verilog

Recommended Posts

AnatolySh

Всем добра, а я продолжаю исследовать далёкое прошлое.
Стоит задача (и я, знаю, что не у меня одного) "причесать" старые проекты, написанные в графике, хотя бы к уровню Verilog начала века.
Так, берём вот такой простейший модуль

image.thumb.png.e7b62c5d8de213d5e7398d329030ef28.png

И пытаемся его переписать в виде

image.png.1151c6575cd1f37dd81d0b1ca8bc5507.png

И то и то в MaxPlusII 10.0
Оно, вроде бы, очевидно, что эквивалентно, но хочется неопровержимых доказательств, самым очевидным из которых является совпадение прошивок (RBF для FPGA серии, например, FLEX).
Компилируем то и то - ан нет: прошивки не совпадают. Где тут собака порылась?
Оба проекта с исходниками и скомпилированными файлами в скрепке. 

 

dec12.zip

Share this post


Link to post
Share on other sites

sazh

Не сможете Вы причесать проект, созданный в графическом редакторе разработчиками прошлого века. Для этого надо мыслить категориями 133 серии.

Более того, даже если перенести графику с мах+ на какой нибудь квартус, работать этот проект полно функционально  скорее всего не будет. Потому что эти разработки  в большинстве своем не соответствуют "золотым" правилам работы с проектами плис, а соответствуют "золотым" правилам работы на "рассыпухе", проверенные на морозе и тепле.

Поэтому и хранят раритетные проекты совместно с пакетом, в котором они разрабатывались. И корректируются, если надо, в этой среде проектирования.

Перевести в лоб графику на язык описания аппаратуры - пустая затея. Надо все переписывать, не глядя в графику, только опираясь на ТЗ.

А совпадение проверить просто. Моделированием в мах+ и моделированием в моделсиме. Времянки (функционально) совпадут.

Единственная проблема при переходе на язык описания аппаратуры, которая может возникнуть, которую Вы не видите, это если контрольная сумма *.pof файла старого проекта прописана где нибудь  в КД.

Share this post


Link to post
Share on other sites

AnatolySh
1 hour ago, sazh said:

разработчиками прошлого века.

Да я сам - такой же разработчик и с этого начинал. Не с 133 серии, но рассыпуху в руках держал.

1 hour ago, sazh said:

Потому что эти разработки  в большинстве своем не соответствуют "золотым" правилам работы с проектами плис, а соответствуют "золотым" правилам работы на "рассыпухе", проверенные на морозе и тепле.

Про золотые правила ПЛИС читал, а, вот, первые где-то описаны? Но, даже если и так, то непонятен переход от золотых правил на рассыпухе на золотые правила (Вы имеет в виду DesignDoctor или что-то иное?) в МаксПлюсе?

1 hour ago, sazh said:

Поэтому и хранят раритетные проекты совместно с пакетом, в котором они разрабатывались.

Вот именно как раз не мой скучай. Я тщетно ищу везде именно ту версию, в которой компилировался проект

1 hour ago, sazh said:

Перевести в лоб графику на язык описания аппаратуры - пустая затея.

Ну почему же? Вот модуль выше - что тут сложного? Уверен, что и остальное также. Это даже не перевод с языка графики на язык HDL: это тупо копирование. Осталось убедиться, что оно выполнено правильно. Нужен независимый эксперт.

1 hour ago, sazh said:

опираясь на ТЗ.

ТЗ, как чаще всего бывает, пишет сам разработчик на своё изделие. Увы, это тоже не тот случай.

1 hour ago, sazh said:

А совпадение проверить просто. Моделированием в мах+ и моделированием в моделсиме. Времянки (функционально) совпадут.

Просьба поподробнее про совпадение времянок: что, с чём и как Вы предлагаете сравнивать?

1 hour ago, sazh said:

Единственная проблема при переходе на язык описания аппаратуры, которая может возникнуть, которую Вы не видите, это если контрольная сумма *.pof файла старого проекта прописана где нибудь  в КД.

Вы уже перешагиваете этапы - до того, как я приду к заключению, мне надо разобраться с промежуточными. Контрольная сумма, шапка и битстрим не есть основное. Основное - убедиться, что я всё делаю правильно и, желательно, не включая аппаратуру.

Share this post


Link to post
Share on other sites

nice_vladi
27 minutes ago, AnatolySh said:

Вы уже перешагиваете этапы - до того, как я приду к заключению, мне надо разобраться с промежуточными. Контрольная сумма, шапка и битстрим не есть основное. Основное - убедиться, что я всё делаю правильно и, желательно, не включая аппаратуру.

Кстати, quartus должен уметь конвертировать схемы в verilog/vhdl. Во всяком случае, современные умеют, не ручаюсь за старые. File->Create/Update->Create HDL design from current file... Не пробовали?

Share this post


Link to post
Share on other sites

AnatolySh
1 hour ago, nice_vladi said:

Кстати, quartus должен уметь конвертировать схемы в verilog/vhdl.

Даже maxplus умеет конвертить графику в ahdl, но получается такая неприглядная картина, что я уж ручками.

Share this post


Link to post
Share on other sites

sazh
16 минут назад, AnatolySh сказал:

Даже maxplus умеет конвертить графику в ahdl, но получается такая неприглядная картина, что я уж ручками.

Не надо ничего конвертировать. Если мах+ поддерживает верилог 1999, он должен сгенерировать нетлист для функционального моделирования и дать возможность создать файл временной диаграммы. Дальше моделируете. Я так и не понял, есть ли у Вас проект в графическом редакторе, для которого Вы ищите почему то мах+ именно 9ой версии. Если графический проект есть, то можно забыть о мах+.

Последний квартус, который поддерживает семейство флекс 10К - это 9.0 sp2. Можно перетащить в него графический проект и точно также моделировать проекты, независимо от того как они описаны. у него есть встроенное моделирование. Но если переходить на язык описание аппаратуры, желательно пользоваться сторонними пакетами для моделирования. Совместно с квартусом идет пакет Альтера моделсим. Написав тестбенч, можно упаковать его в  квартусе в проект и запустить  из квартуса моделирование в моделсиме и посмотреть результат. Но переходя на полное текстовое описание как проекта так и описание для него входных возмущений, Вы становитесь независимы от среды проектирования.

`timescale 1 ns / 1 ps
module dec12_tb;
reg S = 1'b1;
reg X = 1'b1;
wire A0;
wire A1;
initial begin
#10
{S, X} = {1'b0, 1'b1};
#50
#5 $display ("End");
$stop;
end

dec12
    dec12_inst
(
    .S        (S),
    .X        (X),
    .A0    (A0),
    .A1    (A1)
);

endmodule

Share this post


Link to post
Share on other sites

AnatolySh
1 hour ago, sazh said:

Но переходя на полное текстовое описание как проекта так и описание для него входных возмущений, Вы становитесь независимы от среды проектирования.

Спасибо, конечно, но .. я просто оставлю здесь это ... в скрепке

Шарапов А.А. Автоматизация функционального моделирования.pdf

Share this post


Link to post
Share on other sites

sazh
23 минуты назад, AnatolySh сказал:

Спасибо, конечно, но .. я просто оставлю здесь это ... в скрепке

Шарапов А.А. Автоматизация функционального моделирования.pdf 6 MB · 2 скачивания

Так вроде бы в стандарте 2005 уже давно есть встроенная $clog2.

Что касается QREG = DATA, тоже не есть хорошо. Что касается проекта uart, то вряд ли кто сделает изящнее, чем это исполнено в ДВК-2.

Мне просто стало интересно.  зачем Вам мах плюс и графический редактор?

Share this post


Link to post
Share on other sites

AnatolySh
14 hours ago, sazh said:

Так вроде бы в стандарте 2005 уже давно есть встроенная $clog2.

Что касается QREG = DATA, тоже не есть хорошо. Что касается проекта uart, то вряд ли кто сделает изящнее, чем это исполнено в ДВК-2.

Что касается всего этого, то Вы, как и та фирма, для которой эта статья была написана, сути не уловила. И Вы и они путаете цель и средства или, другими словами, за деревьями не видите леса.

14 hours ago, sazh said:

Мне просто стало интересно.  зачем Вам мах плюс и графический редактор?

Наверное, плохо пояснил. Есть проект в графике. Хочу перевести в текст, убедившись, что с водой не выплеснул и ребёнка. И та и та аналогии понятны?

Share this post


Link to post
Share on other sites

des00
1 hour ago, AnatolySh said:

Наверное, плохо пояснил. Есть проект в графике. Хочу перевести в текст, убедившись, что с водой не выплеснул и ребёнка. И та и та аналогии понятны?

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

 

Share this post


Link to post
Share on other sites

AnatolySh
11 hours ago, des00 said:

конвертните его в верилог встроенными средствами.

Ну, в принципе, я от этого и плясал:

image.thumb.png.23b0d2087e8f048d7e87c12c0f6cfe79.png

А formality check кто умеет?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.