Final Presentation

advertisement
REGISTER MANAGMENT
TOOL
Final presentation – Part B
Preformed by: Liat Honig
Nitzan Carmel
Supervisor: Moshe Porian
Date: 17/05/13
Duration: Two Semesters
MANY TEAMS NEED TO CREATE THEIR OWN REGISTER
BLOCKS FOR FPGA SYSTEMS.
LEADING TO
BUGS
Double Effort
THE SOLUTION
A
REGISTER MANAGEMENT TOOL
Automatically generates registers according to
a required specification using a smart interface!
AUTOREG – A SMART REGISTER MANAGEMENT
TOOL
INSERT YOUR
PROJECT’S
SPECIFICATIONS
TO THE GUI
AUTOMATICALLY
CREATE VHD AND
HSID FOR
REGISTER BLOCKS!
THE SOLUTION
–
A REGISTER MANAGEMENT
Project
Goals
TOOL
 Automatically
registers according
to the
o Determinegenerates
and characterize
a local bus
forrequired
specification.
communication with all the register slave blocks.
 Enables REUSE
o Generic Implementation that allows reuse in
multiple projects.
 Saves money and resources
o Encapsulation of implementation, which will be
hidden from the user.
 Creates unity in the registers VHD files
THE SOLUTION
–
A REGISTER MANAGEMENT
Project
Goals
TOOL
o Determine and characterize a local bus for
 Creates
documentation
the register
components
communication
with for
all the
slavecreated
blocks.
Leads to an organized – HSID
o Generic Implementation that allows reuse in
multiple
projects.
 Alarms
in case
of incorrect input
o Encapsulation of implementation, which will be
hiddenthe
from
the user.
 Manages
registers
through the entire project
Project Goals
o Determine and characterize a local bus for
communication with all the register slave blocks.
o Generic Implementation that allows reuse in
multiple projects.
o Encapsulation of implementation, which will be
hidden from the user.
PROJECT SPECIFICATIONS
1. Writing a GUI interface through which the user will determine a
variety of attributes.
2. Interactivity - The tool will provide feedback for user errors and
will provide a summary output.
3. VHDL:
VHD files
Local Bus
Master
Simulation
Environment
4. No special license will be needed to operate the tool, an EXE
file will be given to the user.
5. HSID will be generated under IEEE standards (IP-XACT)
PROJECT STEPS

1. Determine the implementation platform of the user
interface and data processing: Excel/MATLAB/C++/C#/JAVA .

2. Full characterization of the tool capabilities.

3. Learning the working environment (Wishbone protocol,
advanced VHDL coding , MODELSIM simulation environment).

4. VHDL generic design and simulation.
 5. Implementing the GUI (Graphic User Interface)
 6. Implementing Automatic VHDL generation.
 7. Final MODELSIM and MATLAB Simulations.
VHDL IMPLEMENTATION
GENERAL DESCRIPTION
Project Goals
Local Bus
Register
access
o Determine and characterize a local bus for
communication with all the register slave blocks.
Register
Register
Block
Block
Chip
o Generic
data I/O
Register
Block
Implementation that allows reuse in
multiple projects.
o Encapsulation of implementation, which will be
hidden from the user.
VHDL TOP ARCHITECTURE
reset
clk
ProjectBlock
Goals
A
Reg_status_1
Wishbone Master
Function_1
o Determine and characterize a local bus
for
communication with all the register slave blocks.
o Generic ImplementationReg_enable_2
that allows reuse in
Function_2
Block_A_reg_top
multiple projects.
o Encapsulation of implementation, which will be
hidden from the user.
func_err_3
Function_3
REG BLOCK ARCHITECTURE
Block_A_reg_top
Inputs from block
o Determine and characterize a local bus for
Reg1
communication with all the register slave
blocks.
Outputs
to block
Reg2
Reg3
Priority
Encoder
WB
Master
o Generic Implementation that allows reuse in
WB
multiple
Slaveprojects.
4
o Encapsulation of implementation, which
will be
reg_chosen
hidden from the user.
Reg4
Data from chosen
register
Functional
Block
GENERIC IMPLEMENTATION
GENERIC IMPLEMENTATION
VHDL SIMULATION
SIMULATION ENVIRONMENT
Macro
Scripts
SIMULATION ENVIRONMENT
Macro
Scripts
• Compilation
• Simulation
• Waveforms
Test Bench
SIMULATION ENVIRONMENT
Results
Output File
Simulation
input
Macro
Scripts
• Compilation
• Simulation
• Waveforms
Simulation
outputs
Test Bench
• Procedure called
serially many
times
• Comparison to
expected values
• Reporting
results to output
file
Waveforms
TEST PLAN - OVERVIEW

Testing small modules separately

gen_reg.vhd:
Read
 Write
 Read/Write
 Clear On Read
 Const.


wbs_reg.vhd
Read transactions (single/burst)
 Write transactions (single/burst)



encoder_generic.vhd
Then, testing the entire design

Gen_block.vhd
TEST PLAN – CASES

Testing Regular Activity
Various generic values for address width
 Various values for data
 Read/Write single/burst wishbone cycles for suitable
registers

Testing system boundaries
 Testing system generics

SYNTHESIS
SYNTHESIS RESULTS
A synthesis demonstration was ran, using
Quartus II 12.0sp2, using the following test case:
32 registers, with 8-bit data width, with device
EP4CGX50DF27C6
 Compilation and Synthesis finished successfully.
 Summaries:

Maximum Frequencies:
• Slow 1.2V 85C model –
1199MHz
• Slow 1.2V 0C model –
1328MHz
NETLISTS
GRAPHICAL USER INTERFACE
REQUIREMENTS FROM GUI

Easy to use user experience

Feedback is provided in real time

Data is filled automatically if possible

Easy project view and management

Data and Address can be represented in both
Hexadecimal and Decimal formats
OPENING SCREEN – PROJECT SETTINGS
Settings made for
the entire project
Choose a protocol
Specify address width
Choose address radix
Specify data width
Choose data radix
Specify number of blocks
Specify a directory to
save the generated files
Browser for finding the
requested directory
OPENING SCREEN – PROJECT SETTINGS
Settings made for
the entire project
Choose a protocol
Specify address width
Choose address radix
Specify data width
Choose data radix
Specify number of blocks
Specify a directory to
save the generated files
Continue to next screen
2ND SCREEN – EDIT BLOCK SETTINGS
Opens text editor
Settings made for
the specific block
Specify a name
Provide a description
(optional)
2ND SCREEN – EDIT BLOCK SETTINGS
Settings made for
the specific block
Specify a name
Provide a description
(optional)
Specify an initial
address
Specify number of
registers
choose reset polarity
Navigation
tree view
back to
project
settings
delete
current
block
Continue to next
screen
3RD SCREEN – EDIT REGISTER SETTINGS
Settings made for
a specific register
Specify a name
Provide a description
Choose register type
Specify the offset
address
Specify the initial
data value
Navigation
tree view
Back to block
settings
delete
current
register
3RD SCREEN – EDIT REGISTER SETTINGS
Settings made for
a specific register
Specify a name
Provide a description
Choose register type
Specify the offset
address
Specify the initial
data value
TOP MENUS
 File menu
Create a new project
Open an existing project
Save project as
Save current project
Close current project
Exit AutoReg
 Help menu
About AutoReg
Open user guide
 Generate menu
Report for errors
Generate VHDL files
TREE VIEW
 “Top View” of the entire project
 Automatically sorted by the
absolute address
 Allows easy navigation between
all the screens and components
 Addresses and names are filled
automatically
 Navigation is blocked when
errors or missing data is found in
the current window
ERRORS DISPLAY
AutoReg notifies the user and prevents access to some contents in
the project whenever:
Data isn’t
legal/valid/
complete


Addresses/bits
are
overlapping
Easy to use user experience
Feedback is provided in real time
Before
Deleting an
object
OUTPUTS
ERROR REPORT
HSID
XML – ACCORDING TO IP-XACT STANDARD
VHD FILES

VHD files and reports are created in two subfolders:
DEMO
SUGGESTIONS FOR A LATER PROJECT
1. An option to create a wide register (more than one
address).
2. Support other protocols (not wishbone only)
3. Support more register types
4. Add a possibility to mix between the bits of the same
register when it comes to access manners.
5. Support boards and not just on FPGA
6. Search and filter possibilities
7. Copy-Paste possibilities
SUGGESTIONS FOR A LATER PROJECT
8. Creating a database with options to import and export
9. An option to duplicate , add or delete a register using a
right-click option from the tree view.
10. Unifying the edit_block figure and the edit_reg figure to
prevent window from “jumping”
11. Under the help menu, add a keyboard map for all
keyboard shortcuts of the GUI.
Link:
AutoReg Gui - other features.docx
THE END
Download