?

Log in

No account? Create an account
Портирование MIPSfpga на плату Terasic DE1 с ПЛИС Altera Cyclone II - Юрий Панчул [entries|archive|friends|userinfo]
Money can buy bandwidth. Latency requires bribing God.

[ website | My Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Портирование MIPSfpga на плату Terasic DE1 с ПЛИС Altera Cyclone II [Feb. 2nd, 2016|10:32 pm]
Yuri Panchul
Я получил запрос из крупного университета на Ближнем Востоке про использование MIPSfpga на плате Terasic DE1 с ПЛИС Altera Cyclone II. Хотя у меня нет этой платы на руках, я попробовал помочь преподавателю перенести MIPSfpga на эту плату, и я надеюсь, что университет сможет приспособить MIPSfpga для своей учебной программы. Ниже - фрагмент моей переписки с преподавателем:


Prof. XXX:

I was able to comfortably fit MIPSfpga into DE1 using my variation of MIPSfpga Getting Started / Fundamentals package. I can show you how you can reproduce my result and then how you can correct your own port of MIPSfpga Getting Started by borrowing some of the components I have created.

First, here is how to reproduce my result:



  1. Unzip MIPSfpga Getting Started to C:\MIPSfpga

  2. Get mipsfpgfa-plus into C:\github\mipsfpga-plus

  3. cd C:\github\mipsfpga-plus\boards\de1

  4. make_project.bat

  5. Run Altera Quartus II version 13.0 sp1

  6. Open project C:\github\mipsfpga-plus\boards\de1\project\de1.qpf

  7. Analyze/Synthesize/Place&Route/Assemble

  8. Open Device / Hardware Setup / ByteBlaster / Set file / ouput_files / de1.sof / Start




You should get the following:

Screenshot 2016-02-02 19.55.38

Note I do not have a DE1 board with me so I did not test running on the board. However I am confident it will run either immediately or after I adjust my clock divider.

Now how to correct your own port of DE1:



  1. First, I noticed that you have two versions of mipsfpga_ahb_const.vh with different sizes for ram and reset_ram. This is OK if you have a proper “set_global_assignment -name SEARCH_PATH” line in your .qsf file. Does Quartus pick the correct .vh file?


  2. I was able to fit the design comfortably by specifying 1KB reset_ram size and 1 KB user ram size. However the boot/reset sequence in the original MIPSfpga Getting Started does not fit into 1 KB because it is linked with crt0 from the standard C library. This crt0 code is totally unnecessary because its function is to setup C runtime in “big” operating systems before calling main() and most of it is not applicable for MIPSfpga. By omitting calling crt0 and setting up a stack pointer inside the boot sequence itself, it is possible to shrink the boot sequence to 1KB. You can get it here – https://github.com/MIPSfpga/mipsfpga-plus/blob/master/programs/00_counter/boot.S


  3. Now you may say that 1 KB for user ram is too small. Still, it is enough to do many lab exercises, and if you need more, it is possible to write an interface to the 8 MB SDRAM present on the DE1 board.


  4. Also, if you need more block ram, it is possible to eliminate EJTAG module and load the software program into your synthesized system via UART present in DE1 board.


  5. Options like “set_global_assignment -name ENABLE_ADVANCED_IO_TIMING ON” can bloat the design. If you use it, this would explain why you cannot fit. You can see my constraint file right here - https://github.com/MIPSfpga/mipsfpga-plus/tree/master/boards/de1


  6. I got Fmax 45.97 MHz on my synthesis so you may need to adjust PLL to divide 50 MHz clock.


  7. If necessary, I can sit with you over Skype and make sure you fit the MIPSfpga into DE1 and can run it. My Skype is yuri.panchul.




The whole thing is doable we just need to avoid the pitfalls I outlined (bloating options in constraint file, proper sizes for memories, compact bootloader, clock divider).

terasic_de1

Какие посты вам нравятся больше?

О радостях микроэлектронных технологий
12(66.7%)
О развитии демократии на Украине
4(22.2%)
О сеянцах камелии горной
0(0.0%)
От жизни на Западе Запада
2(11.1%)
Из-за бугра плюете?
0(0.0%)
LinkReply

Comments:
[User Picture]From: andrey_yurin
2016-02-03 07:18 am (UTC)
Почему в опросе для голосования доступен всего лишь один пункт?
(Reply) (Thread)
[User Picture]From: panchul
2016-02-03 07:21 am (UTC)
Чтобы дистиллировать предпочтения!
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: abbat81
2016-02-03 08:09 am (UTC)
Панчул, ты же нормальный человек, не пиши так.
Сегодня только пидоросы пишут "на Украине"
(Reply) (Thread)
[User Picture]From: panchul
2016-02-03 08:58 am (UTC)
Это норма русского языка. Кроме этого:

http://litopys.org.ua/shevchenko/shev146.htm

Як умру, то поховайте
Мене на могилі
Серед степу широкого
На Вкраїні милій,
Щоб лани широкополі,
І Дніпро, і кручі
Було видно, було чути,
Як реве ревучий.
Як понесе з України
У синєє море
Кров ворожу... отойді я
І лани і гори —
Все покину, і полину
До самого Бога
Молитися... а до того
Я не знаю Бога.
Поховайте та вставайте,
Кайдани порвіте
І вражою злою кров’ю
Волю окропіте.
І мене в сем’ї великій,
В сем’ї вольній, новій,
Не забудьте пом’янути
Незлим тихим словом.


Кроме этого: как правильно: "с Украины" или "из Украины"?
(Reply) (Parent) (Thread) (Expand)
(Deleted comment)
[User Picture]From: vito_from
2016-02-03 04:07 pm (UTC)
Панчул, да что за пи**сы у тебя собираются здесь. Видно ольгинцы. Написал какой хороший пост, а они все маркеры пунинских сми пережевывают.
(Reply) (Thread)
[User Picture]From: levtsn
2016-02-03 04:12 pm (UTC)
на каком уовне становится не пофиг - мипс там или арм внутри?
(Reply) (Thread)
[User Picture]From: panchul
2016-02-03 04:29 pm (UTC)
Становится не пофиг когда вы хотите наблюдать или менять внутренности процессора. Например сделать лабу, в которой процессор запускается на сверхнизкой тактовой частоте (1 герц / 1 такт в секунду), вывести наружу сигналы, которые управляют байпасами конвейером и видеть наглядно, как они ведут себя на разных ассемблерных программах.

Сделать это с промышленными ядрами ARM принципиально невозможно , так как ARM раздает образовательную версию своего ядра ARM Cortex M0 в obfuscated виде, так что нельзя прочитать исходники и их изменить.

А вот MIPSfpga является одновременно и промышленным ядром MIPS microAptiv UP (используется внутри Microchip PIC32MZ и внутри Samsung Artik 1) и при этом оно раздается университетам с открытыми исходниками, с которыми можно делать вот такие эксперименты.

Edited at 2016-02-03 06:07 pm (UTC)
(Reply) (Parent) (Thread)
[User Picture]From: flying_d
2016-02-03 06:16 pm (UTC)
Вопросы, однако! Студенты меня как-то не интересуют (сам кагбе давно уже нет), дык зачем нужны все эти "матрицы программируемых элементов/вентилей/ключей" в продакшне?
(Reply) (Thread)
[User Picture]From: panchul
2016-02-03 06:41 pm (UTC)
FPGA используются в частности в некоторых мелкосерийных изделиях, если нужно сделать высокопараллельную обработку какой-то информации, которую не потянет микроконтроллер, DSP или встроенный процессор, и платить фабрике за изготовление специализированной заказной фиксированной микросхемы экономически нецелесообразно для данного приложения.
(Reply) (Parent) (Thread)
[User Picture]From: flying_d
2016-02-03 08:04 pm (UTC)
Но например обработка этой некоей информации на GPU, скажем на топовых Nvidia. Или речь про непонятно какие встраиваемые решения? Я вашего пиара так и не понял.
(Reply) (Parent) (Thread) (Expand)
From: raygo
2016-02-03 07:33 pm (UTC)
Юрий ,вы уже обучаете иранских профессоров как клепатьпроцессоры для ракетных систем?
(Reply) (Thread)
[User Picture]From: panchul
2016-02-03 07:40 pm (UTC)
Нет, в текущий момент - их оппонентов :-)

Хотя в 1998 году у меня был и заказчик из Саудовской Аравии.
(Reply) (Parent) (Thread)
[User Picture]From: mihaliche
2016-02-06 03:19 am (UTC)
<Россия попросила 20 зарубежных банков вернуть ее на рынок заимствований

Минфин направил 20 иностранным и трем российским банкам запросы предложений на оказание услуг по размещению облигаций России на международном рынке капитала, а также услуг финансового агента, сообщает пресс-служба ведомства в пятницу, 5 февраля.

В сообщении указывается, что Москва обратилась к Barclays, BNP Paribas, Bank of America Merrill Lynch, Bank of China, Wells Fargo, «ВТБ Капиталу», Газпромбанку, Goldman Sachs, J.P. Morgan, Deutsche Bank, Industrial and Commercial Bank of China, Credit Agricole, Credit Suisse, Landesbank Baden-Wuerttemberg, Morgan Stanley, Nomura, Sberbank CIB, Citigroup, Societe Generale, TD Securities, HSBC, RBC Capital Markets и UBS.>
Так хто ж таки допрыгался,Майдан или Красная площадь ??? :-D
(Reply) (Thread)
[User Picture]From: panchul
2016-02-06 03:44 am (UTC)
У меня недостаточно знаний о международной финансовой системе, чтобы оценить это хорошо или плохо, а ваше мнение по этому поводу меня интересует если и только если вы профессиональный финансист.
(Reply) (Parent) (Thread)
[User Picture]From: mihaliche
2016-02-06 04:29 am (UTC)
Если у вас достаточно знаний ,что бы судить об Украине ,то и здесь глядя на заголовок ,вы уже должны понять ,что Раша в своей мании величия уже допрыгалась........
<Россия попросила 20 зарубежных банков вернуть ее на рынок заимствований>
(Reply) (Parent) (Thread) (Expand)