3rd 3DDRESD: SysGen

659 views
574 views

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
659
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

3rd 3DDRESD: SysGen

  1. 1. SysGen - System Generation in Caronte flow - POLITECNICO DI MILANO D ynamic R econfigurability in E mbedded S ystems D esign Matteo Renesto: matteo.renesto@dresd.org
  2. 2. Context of Work <ul><li><<Earendil>> </li></ul><ul><li><<Caronte>> </li></ul><ul><li>System Generation: - Low Level Reconfiguration - Last step of Caronte Flow </li></ul>
  3. 3. State of Art <ul><li>At present for system generation there are two different flows, for different cases - Acheronte , that uses Module-Based Partial reconfiguration. - Inca , that uses Early Access Partial Reconfiguration. </li></ul><ul><li>The problem: To use one or the other flow we need to fulfill some requirements (ISE version and Board), otherwise the process will fail. At present, users must take care of this aspect. </li></ul>
  4. 4. Proposed solution <ul><li>Theoretical Aspect </li></ul><ul><li>We need a Standard flow for System Generation that should be: </li></ul><ul><li>Correct </li></ul><ul><li>Complete </li></ul>START Given a problem P, composed by a Project and HW – SW context. IF it is possible to solve that problem, that is to realize the project, THEN use right flow, in order to produce the right result ELSE Show why it’s not possible. END
  5. 5. Goal: A Standard Flow Reconfigurable Project System Characterization Acheronte: Module-Based INCA: EAPR Other: MB or EAPR or Other Error or Success System Generator
  6. 6. Key aspects <ul><li>System Characterization. </li></ul><ul><li>Reconfigurable Hardware Design. </li></ul><ul><li>Reconfigurable Flow with different ISE version </li></ul>
  7. 7. System Characterization <ul><li>What do we mean with “System Characterization” ? </li></ul><ul><li>Design possibilites: -Area dimension -Number of modular areas supported -2D placement or 1D placement -2D reconfiguration or 1D reconfiguration -Type of GPP supported (PPC and/or Microblaze) -Dynamic or only static. -Type of dynamic reconfiguration supported (MB–EAPR) -Internal or External reconfiguration. </li></ul><ul><li>Tools -ISE version. -Board. </li></ul>
  8. 8. System Characterization <ul><li>To decide if is possibile to realize the project. </li></ul><ul><li>To point out the logical error of a project. </li></ul><ul><li>To use the right flow. </li></ul>Why is important to know the characterization?
  9. 9. <ul><li>Requirements: a) Your IP Cores. VHDL files b) Bus HardMacros. NMC files c) Your Application, .c file. </li></ul><ul><li>Procedure, in EDK: 1) Create a new architecture with EDK, following the wizard. </li></ul><ul><li>2) Import your IP cores as peripheral (at this point only one for each reconfigurable area) 3) Implement your software. </li></ul><ul><li>4) Generate Netlist and generate Bistream </li></ul><ul><li>Now you have a static architecture, you should make it dynamic. </li></ul>How To Create a Reconfigurable Project
  10. 10. How To Create a Reconfigurable Project <ul><li>Take system.vhd, generated by EDK </li></ul><ul><li>Using ArchGen generate top.vhd and fix.vhd </li></ul><ul><li>Using the wrapper obtained from EDK project you must generate all modules for all’IP cores. </li></ul><ul><li>Syntetize all: top, fix and modules. Only top with I/O buffers. </li></ul><ul><li>Take from EDK project the constrains files, edit it adding constrains for Bus Macros, and areas. Mode = “Reconfig”; constrain defines that an area will be reconfigurable. </li></ul>
  11. 11. Matching our flow with Xilinx ISE In order to have a working flow, we have to analyze each case, and what that case allows us to do.   ISE 7.1 ISE 8.2 ISE 9.2 ISE 10.1 Module-Based ? ? ? ? Early Access ? ? ? ?
  12. 12. Module Based Flow <ul><li>Working only on Virtex II, Virtex II pro, Virtex-E, Virtex 4 Virtex 5. </li></ul><ul><li>No signal crossing reconfigurable area allowed. </li></ul><ul><li>No 2D reconfiguration. </li></ul><ul><li>Areas must use all the height. </li></ul><ul><li>Reconfigurable area size, multiple of 4 (number of slices) </li></ul><ul><li>XC2VP7 is usually too small for our achitecture, generated with EDK. </li></ul>
  13. 13. MB Flow with ISE 7.1: Acheronte <ul><li>We can realize an architecture like Yara, with a fix area and some reconfigurable regions. Following Module Based Flow. </li></ul><ul><li>Step 1: Initial Budgeting </li></ul><ul><li>Step 2: build of Fix area </li></ul><ul><li>Step 3: build of each module </li></ul><ul><li>Step 4: Merge </li></ul><ul><li>Step 5: Generate Bitstream. </li></ul><ul><li>Important: Use the last ISE’s service pack! </li></ul>
  14. 14. First Result <ul><li>Early Access Flow is not yet supported for ISE 7.1. </li></ul>  ISE 7.1 ISE 8.2 ISE 9.2 ISE 10.1 Module-Based V Early Access X
  15. 15. Module Based with ISE 8 <ul><li>Theoretically, following Xilinx user guide, there are no differences form Module Based with ISE 7.1 </li></ul><ul><li>Pratically, Module Based partial reconfiguration with ISE 8.1 or 8.2 DOESN’T WORK! During Merge Phase, PAR fail to route some signal. </li></ul><ul><li>If we remove the constrains “MODE = RECONFIG” we meet no error. </li></ul><ul><li>Let’s analyze the problem… </li></ul>
  16. 16. The problem of ISE 8 <ul><li>During MAP phase Xilinx tool introduces the power lines to the design. In order to supply power to SLICES, BRAM etc.. </li></ul><ul><li>During Route phase the tool should route two signals that drive power. </li></ul><ul><li>GLOBAL_LOGIC0 and GLOBAL_LOGIC1 (they are GND and VCC) </li></ul><ul><li>But PAR, when doesn’t crash throwing exception, fails. </li></ul>
  17. 17. The problem of ISE 8 <ul><li>All other unrouted signals can be routed by FPGA Editor. Problems come from the first unrouted… </li></ul><ul><li>Little changes in the design, may remove other unrouted signals, but not GLOBAL_LOGIC0 (or 1) </li></ul>
  18. 18. The problem of ISE 8
  19. 19. The problem of ISE 8 <ul><li>Other solutions proposed by Xilinx, like “reentrant route”, produce no different result. </li></ul><ul><li>If we try to route manually that signal… … FPGA Editor Crash! </li></ul><ul><li>Let’s us setup EPAR patch… to solve this problem too… </li></ul>
  20. 20. Early Access Partial Reconfiguration <ul><li>EAPR flow have no big differences from Module Based, but gives us some good features </li></ul><ul><li>Manage arch.exclude file, which provides a description of busy logic, this allows us to cross reconfigurable region with signals without big troubles. </li></ul><ul><li>Manage 2D placement, and 2D reconfiguration, if the device allows it, like Virtex 4 and 5 do. </li></ul>
  21. 21. EAPR on ISE 8.2: INCA Flow <ul><li>ISE 8.2 is required, EAPR patch doesn’t work correctly with previous version like 8.1 </li></ul><ul><li>Inca is an automated flow that follows similar steps like Acheronte, but using EAPR patch. </li></ul>
  22. 22. Second Result <ul><li>With ISE 8.2, Module Based doesn’t work correctly </li></ul><ul><li>EAPR fixes the problem and offers new features. </li></ul>  ISE 7.1 ISE 8.2 ISE 9.2 ISE 10.1 Module-Based V X Early Access X V
  23. 23. ISE 9.2 <ul><li>No significant differences, for us, from ISE 8.2 </li></ul>  ISE 7.1 ISE 8.2 ISE 9.2 ISE 10.1 Module-Based V X X Early Access X V V
  24. 24. ISE 10.1 <ul><li>Module Based was removed from the last update of Xapp290 </li></ul><ul><li>EAPR patch hasn’t been still relased for ISE 10.1. </li></ul>  ISE 7.1 ISE 8.2 ISE 9.2 ISE 10.1 Module-Based V X X X Early Access X V V ?
  25. 25. Conclusion <ul><li>Now we have a full coverage of all cases, and we know, in every case, if Dynamic Partial Reconfiguration does work or not. </li></ul><ul><li>Unfortunately EAPR project, often aren’t compatible with old Module Based. </li></ul><ul><li>With this know-how we could build automated tools for: A) Create a System Characterization that could give guidelines to all the design procedure, signalling to the user all the errors and conflicts as output. B) Implement our design with only one tool that follows the right flow in each situation. </li></ul>
  26. 26. Future Works <ul><li>Create only one tool for Low Level Reconfiguration, that in autonomus way, once launched, starts creating context charachterization, and follows all the steps, without user’s intervention until final result. </li></ul>
  27. 27. Future Works <ul><li>Xilinx is developing a new flow for Dynamic Partial Reconfiguration, so we will need to update our classification and tools. </li></ul>  ISE 7.1 ISE 8.2 ISE 9.2 ISE 10.1 ISE X.Y Module-Based V X X X X Early Access X V V ? X New Flow X X X X V
  28. 28. Questions? ?

×