Title Slide

advertisement
P1801 Proposal Discussion
Wireless network access at Magma
• SSID (not broadcast): lava
64 bit key or 10 digit Hex key : 00000fffff
April 13, 2015 -- 2
Get commands for P1801
• Why are these needed?
• To allow for instrumentality without the requirement to
•
delete everything and re-source the entire UPF file.
For ECO’s or modifications later on in the flow, mistakes
happen and having the ability to change modify (via get /
delete commands) becomes advantageous.
• To aid convergence with other ‘low power’
formats
• It is part of out ‘extent’ document to aid in convergence so
•
by providing get* and ‘atomic’ operations to access logical
information will greatly aid in this convergence.
After the acceptance of ‘proposal 6’ for XYZ access to
logical information would also be beneficial.
April 13, 2015 -- 3
Get commands for P1801
• There are two proposals for the implementation of a get command.
• Before we cover the two proposals, it should be made clear that the
proposals have further been subdivided
•
•
Get commands for UPF objects
•
The definition of a UPF object is
• A retention strategy, isolation strategy, isolation strategy, power domain, domain
colorization of a net etc..
Atomic get commands for logical ‘database’ access / queries
•
Thus providing access to logical information, such as nets, pins, design elements
etc.
• The get command should be able to
•
•
•
Return information formatted as a tcl list
Be able to be write the information to a file
Be flexible so that we can
•
•
•
April 13, 2015 -- 4
List defined UPF objects
Easily query the entire contents of a UPF object
Have the ability to query individual options.
Proposal 1
• Have a generic get command i.e. get_upf_object
that could be used to query UPF objects.
• This got shot down very quickly internally. The main
negatives were
• This command will be too complex to handle all the options of the
•
•
April 13, 2015 -- 5
various strategies.
It ‘feels’ more intuitive to have a get command for a corresponding
set command.
The command would for ever be changing whenever a new set
command was added.
Proposal 2
• Have a corresponding get_* command for each set_*
command where appropriate.
• See overleaf for a matrix of commands that are appropriate for s
get/delete command
• The benefits of this approach
• It’s clear what the command is going to do
• The options can be easily tailored to the type of data that is being
•
retrieved
As new commands are added it is easy to add the corresponding get
command where appropriate
• The down sides
• Sorry Joe!
• A lot more commands.
April 13, 2015 -- 6
Proposal 2
• NB, all get commands will return a tcl list, I’ve used a newline just
•
for ease of reading.
The current scope will be used as the anchor point for the ‘query’
• Using the interleaver example
upf_cmd> set_scope /
upf_cmd> get_power_domain
PD_interleaver
PD_rx
PD_tx
upf_cmd> get_power_domain –hier
PD_interleaver
PD_rx
PD_tx
in2wire/PD_rdyacpt
out2wire/PD_rdyacpt
April 13, 2015 -- 7
Proposal 2
•
Move information can be obtained by specifying the domain
•
•
If no options are specified the entire string required to recreate the domain is returned.
A –file option could also be easily added to write this information to a file if desired.
upf_cmd> get_power_domain PD_rx
create_power_domain PD_rx -elements {in2wire pkt_counter}
•
If specific information is required then options can be specified.
•
•
ONLY one option is permitted at a time.
-hier NOT permitted.
upf_cmd> get_power_domain PD_tx -elements
fifo
out2wire
•
How to handle –include_scope?
upf_cmd> get_power_domain PD_Interleaver –elements
.
April 13, 2015 -- 8
1877 / 1889 - Precedence And Regular Expressions
• Recap
• These mantis issues talk about precedence rules, regular expression
support and the ability to specify an exclude list.
• I agree a form of wildcarding is required to provide a
practical method of specifying a group of elements.
• There have been discussions on whether the wildcards
should be string expansions or regular expressions.
• Why not provide both?
April 13, 2015 -- 9
1877 / 1889 - Precedence And Regular Expressions
• Use simple string matching for the all commands, and
where more powerful regexp is required the upf_find
command can be used i.e.
• For example if O is an 8 bit output bus [0:7]
• -elements {a/b/O[*]}
•
This would select all eight bits
•
This would select 6 bits (0- 6)
• -elements {[upf_find a/b O[0-5] –type port –regexp]}
• NB each tool provider should verify what is acceptable
where [] are concerned, so that consistent examples can
be provided.
• For example Magma’s TCL parser would recognize the above as a
bus expansion, and would not try to execute a command called *. It
might need to be re-written as:
• -elements
April 13, 2015 -- 10
{a/b/O\[*\]}
1877 / 1889 - Precedence And Regular Expressions
•
It as been raised a number of times that there is a desire for the
specification of an exclusion list.
•
As long as this is clearly specified this would also prove a powerful filtering
mechanism.
•
If we take the previous example of the 8 bit output bus, and we want to
insert a levelshifter on all output bits except bit 7, we could:
• set_level_shifter
{O[7]}
•
Alternatively
• set_level_shifter
• set_level_shifter
•
•
myshift –domain PD0 –elements {O[*]} –exclude
myshift –domain PD0 –elements {O[*]}
myshift –domain PD0 –exclude {O[7]}
The exclude effectively acts like a clear
If an object is specified in an exclude list then there is no way in THAT
strategy of specifying any other behavior than the ‘default’
April 13, 2015 -- 11
1877 / 1889 - Precedence And Regular Expressions
•
The following would NOT be allowed
• set_level_shifter
•
•
•
self
set_level_shifter myshift –domain PD0 –exclude {O[7]}
set_level_shifter myshift –domain PD0 –elements {O[7]} –location
parent
The following would be allowed
• set_level_shifter
•
•
•
myshift –domain PD0 –elements {O[*]} –location
myshift1 –domain PD0 –elements {O[*]} –
location self
set_level_shifter myshift1 –domain PD0 –exclude {O[7]}
set_level_shifter myshift2 –domain PD0 –elements {O[7]} –
location parent
While I am on the set_level_shifter command
•
•
Does anyone have any objection in changing –applies_to to –default <output,
input, both, none> both
I.e. if you have not explicity specified a –no_shift for an element then the default applies,
this just seems clearer than the current definition.
April 13, 2015 -- 12
1877 / 1889 - Precedence And Regular Expressions Name
Qualification
•
A lot of commands have the potential for ambiguity i.e. the –elements
option on set_retention_control.
•
•
How do we distinguish a named process versus, a cell versus a net?
What is the precedence order?
•
There have been proposals to expand the number of additional options to
each commands, so each ‘object’ type is specified separately, but there
were also complaints against this to.
•
Name qualification is a powerful unambiguous method by which we can
simply the number of options and allow for combined lists of different
objects.
•
Name qualification could be of the form
•
•
scope/[qualifier]:object
For example, all of the following are valid and unambiguous
•
•
•
•
•
April 13, 2015 -- 13
/in2wire/domain:pdyacpt
/in2wire/net:pdyacpt
/in2wire/cell:pdyacpt
/in2wire/process:pdyacpt
/in2wire/pst:pdyacpt
1877 / 1889 - Precedence And Regular Expressions Name
Qualification
• Name qualification could be used for all objects.
• If an object is not specified with a name
qualification then the specified precedence rules
would apply.
• Pin
• Net
• Design element
• Process
• Strategy
April 13, 2015 -- 14
upf_find
•
•
•
EDA tools of course provide the ability to search the logical and physical
design.
UPF to some extent also needs this capability to provide portability
between tools.
The upf_find command could be used to replace the –all_inputs /
all_outputs options of levelshifter and isolation cell commands.
upf_find <domain | scope> search_string
-type <net|port|pin|design_element>
-direction <in|out>
-hier
•
Examples of use
• upf_find
PD_rx * –type pin –direction in
• Will return all the input pins on the PD_rx domain boundary
• upf_find
/fifo * -type design_element
• upf_find
/fifo PMY_.* -type design_element -regxp
• Would return all the design elements in /fifo
• Would return all the design elements in /fifo that start with PMY_
April 13, 2015 -- 15
upf_find
• Assume the logical and physical hierarchy is
identical in the example below.
• Domain boundary
• The inputs of the Orange domain are any signal that goes
from
• A->B
• C->B
A
B
D
April 13, 2015 -- 16
C
UPF Delete
• To help facilitate incrementally and the ‘interactive’ use
of UPF the ability to delete the following UPF objects
would be desirable
• Domains
• Strategies
• Net colorization
• PST’s
• Power switches
• This could also be achieved through two approaches
• Individual commands
• delete_domain,
delete_retention_strategy etc..
• A single ‘powerful’ delete command
• delete_upf_object <object>
• upf_command> delete_upf_object PD_rf
• This appraoch would require name qualification to be accepted by the
comittee.
April 13, 2015 -- 17
UPF Delete
• The upf delete command could also be one
possible solution to Steve’s domain_merge
problem on the interlever.
April 13, 2015 -- 18
Levelshifter / Iso Enhancements
• LS/ISO commands are currently pin based.
• A path based approach would provide added
flexibility.
ls –from PD1
ls –from PD1 –to PD3
PD1
April 13, 2015 -- 19
PD2
PD3
PD1
PD2
PD3
Levelshifter / Iso Enhancements
• However the current specification we have in
P1801 would still allow correct specification, it
just takes more lines.
• Additional of physical information makes this even more
complicated.
• Maybe this is best left in the implementation tool
domain as value add?
April 13, 2015 -- 20
Levelshifter / Iso Enhancements
• We do lack clear semantics on the supporting combined
•
levelshifter and isolation cells (so called combo cells)
One possible solution would to allow specification
through the map commands.
• If an output of a domain had both an lS and ISO strategy and the map
command for both specified a combo cell.
• Another would be to provide a combined LS and ISO
•
•
command, with the appropriate set/map commands.
Another would be to add a –combined option to the set
LS/ISO commands, that if specified for either command
would instruct the implementation tool to use a
combined cell.
In some cases this will not be possible (i.e. different
locations specified) so could be seen as an optimization
constraint…
April 13, 2015 -- 21
Switch Cells
• Switch cells are currently created in the scope.
• In the physical world this will not always be
guaranteed, and will quite like be a rare
occurrence.
• The scope was chosen so that there was an unambiguous
•
•
location.
We need to look at a mechanism to also allow the user to
specify the desired logical location.
Also need to decide on how we want to represent the
logical connectivity between disjoint switched voltage
islands of the same domain.
April 13, 2015 -- 22
Switch Cell scope/extent
LOGICAL
vdd_
pad
PD_Interleaver
rx_iso
_en
PHYSICAL
vss_
pad
vdd_
pad
PD_Interleaver
rx_iso
_en
rx_iso
_en
in2wire
pktcntr
PD_rx
in2wire
pktcntr
rx_
sleep
rx_
sleep
tx_iso
_en
PD_tx
tx_iso
_en
April 13, 2015 -- 23
tx_iso
_en
fifo
out2wire
tx_
sleep
vss_
pad
fifo
out2wire
ram
tx_
sleep
ram
Download