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

Altera GDF -> Verilog

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

image.thumb.png.e7b62c5d8de213d5e7398d329030ef28.png

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

image.png.1151c6575cd1f37dd81d0b1ca8bc5507.png

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

 

dec12.zip

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


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

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

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

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

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

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

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

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


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

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 файла старого проекта прописана где нибудь  в КД.

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

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


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

27 minutes ago, AnatolySh said:

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

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

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


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

1 hour ago, nice_vladi said:

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

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

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


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

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

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


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

1 hour ago, sazh said:

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

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

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

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


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

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

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

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

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

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

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

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


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

14 hours ago, sazh said:

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

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

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

14 hours ago, sazh said:

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

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

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


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

1 hour ago, AnatolySh said:

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

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

 

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


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

11 hours ago, des00 said:

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

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

image.thumb.png.23b0d2087e8f048d7e87c12c0f6cfe79.png

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

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


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

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

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

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

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

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

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

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

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

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