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

Организация фолдеров SoC

Дорогие коллеги,

Проблема вот вчем,

Написал несколко ядер. WDT, SPI, UART, GPIO. Каждый из которых самостоятельный проект. Для каждого написал TCL скрипты для ModelSim и Synplify. А теперь хочу их использоват в SOC. Организация фолдеров получилось такой

 

/SOC

/GPIO

/Bench

/RTL

/sim

/scripts

/syn

/SPI

/Bench

/RTL

/sim

/scripts

/syn

/UART

/Bench

/RTL

/sim

/scripts

/syn

/WDT

/Bench

/RTL

/sim

/scripts

/syn

/scripts

/syn

/tests

 

Скрипты для автоматической компиляции Verilog RTL файлов в ModelSim-e получились очень комплексными. Можете посоветовать организация фолдеров и скрипты для ModelSim. Интересно помотреть скрипты.

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


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

У вас, похоже, сбились строки. не очень понятно, в чем собственно проблема.

 

Тем не менее, лично я имею прибилизительно след. иерархию проекта:

 

каждый блок (папка) содержит папки src, test, sim, syn :

то есть исходники (ртл верилог), тестовые файлы, симуляция, синтез.

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

Иногда делаю папку components, и в нее вставляю линки (ссылки) на исходники.

Таким образом, стараюсь хранить рабочие исходники в единственном экземпляре, чтобы не размножались разные копии с разными правками. (не считая бэкап архивов и контроля версий)

 

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

 

vlog -incr -f files.lst

vsim work.test

log -r /*

run 1 ms

view wave

add wave ...

 

для синопсиса пришлось писать тикл-скрипт, который этот файл обрабатывает

 

remove_design -all 
set file_2_process "files.lst" 
set fileid [open $file_2_process r] 

while 1 { 
    set next_file [gets $fileid] 
    if [eof $fileid] break 
    if {$next_file != ""} {   
        analyze -format verilog -lib WORK $next_file 
        } 
} 
close $fileid;

 

Другой вариант - использовать `include директиву предпроцессора. ДОБАВЛЕНО: работает для Verilog

`include "D:/my_file.v"

иногда использую вложенный вариант - в топе `include "incl_files.lst", а в том файле уже много строк `include "D:/my_file.v"

 

все эти телодвижения в основном из-за лени и путаницы в голове.

в текущем проект в наличие порядка 200 файлов исходников и еще десяток тестовых файлов

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


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

У вас, похоже, сбились строки. не очень понятно, в чем собственно проблема.

 

Тем не менее, лично я имею прибилизительно след. иерархию проекта:

 

каждый блок (папка) содержит папки src, test, sim, syn :

то есть исходники (ртл верилог), тестовые файлы, симуляция, синтез.

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

Иногда делаю папку components, и в нее вставляю линки (ссылки) на исходники.

Таким образом, стараюсь хранить рабочие исходники в единственном экземпляре, чтобы не размножались разные копии с разными правками. (не считая бэкап архивов и контроля версий)

 

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

 

vlog -incr -f files.lst

vsim work.test

log -r /*

run 1 ms

view wave

add wave ...

 

для синопсиса пришлось писать тикл-скрипт, который этот файл обрабатывает

 

remove_design -all 
set file_2_process "files.lst" 
set fileid [open $file_2_process r] 

while 1 { 
    set next_file [gets $fileid] 
    if [eof $fileid] break 
    if {$next_file != ""} {   
        analyze -format verilog -lib WORK $next_file 
        } 
} 
close $fileid;

 

Другой вариант - использовать `include директиву предпроцессора. ДОБАВЛЕНО: работает для Verilog

`include "D:/my_file.v"

иногда использую вложенный вариант - в топе `include "incl_files.lst", а в том файле уже много строк `include "D:/my_file.v"

 

все эти телодвижения в основном из-за лени и путаницы в голове.

в текущем проект в наличие порядка 200 файлов исходников и еще десяток тестовых файлов

Спасибо! Вот начил писать Temlplate скрипы, и уже который раз все путается в голове. Задача- писать универсальние скрипты для IP Core. Вот бы как-то посмотреть коммерческий Core, структура. Потому что все облегчилось бы, елси был бы параметер в System Environment, сылка на топ фолдер проекта.

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


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

Посмотрите, например, на фтп: паб-фпга-_ипкорс_-ментор.декриптед

Там есть скрипты и для синтеза, и для моделирования.

 

или опенкоровские корки, PCI тот же

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


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

Посмотрите, например, на фтп: паб-фпга-_ипкорс_-ментор.декриптед

Там есть скрипты и для синтеза, и для моделирования.

 

или опенкоровские корки, PCI тот же

Даааа..... Спасибо! То что нужно. Надо мне еще поработать над моими скриптами!!!

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


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

To shems or id_gene

Посмотрите, например, на фтп: паб-фпга-_ипкорс_-ментор.декриптед

Это здесь на ftp для "своих", или , если можно, поподробнее как до

скриптов добраться?

С уважением Фирс.

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


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

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

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

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

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

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

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

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

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

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