Style Question for Components

S

Shannon

Finally I have a STYLE question rather than a how-to!

So I'm putting together the top level of my hierarchical design. I
have many individual entities in my 'work' directory that I want to
hook together.

What is the "standard" that you synthisis guys use?

Declare - Instantiate - Configure a-la VHDL '87
or
direct instantiation a-la VHDL '93?

or something else?

Shannon
 
M

Mike Treseler

Shannon said:
What is the "standard" that you synthisis guys use?

This guy uses

---------> direct instantiation a-la VHDL '93?

Here's an example from a testbench, but it's
the same format in synthesis structures.

-- Mike Treseler

dut : entity work.uart
port map (
clock => clk_s, -- [in] -- by tb_clk
reset => rst_s, -- [in] -- by tb_clk
address => address_s, -- [in] -- by main
writeData => writeData_s, -- [in] -- by main
write_stb => write_stb_s, -- [in] -- by main
readData => readData_s, -- [out]-- by uut
read_stb => read_stb_s, -- [in] -- by main
serialIn => serialIn_s, -- [in] -- by main,loopback dest
serialOut => serialOut_s -- [out]-- by uut, loopback source
);


-- Mike Treseler
 
M

Martin Thompson

Shannon said:
Finally I have a STYLE question rather than a how-to!

So I'm putting together the top level of my hierarchical design. I
have many individual entities in my 'work' directory that I want to
hook together.

What is the "standard" that you synthisis guys use?
Hi Shannon,

My answer would be direct instantiation (unless you have a really good
reason not to).

We had a thread about this a while ago: (sorry, long line!)
http://groups.google.co.uk/group/co...t+instantiation&rnum=1&hl=en#f661479f1ba38b61

Cheers,
Martin
 
A

Andy

I'm with Mike, except I also declare the architecture name, as
follows:

dut : entity work.uart(rtl)

where "rtl" is the name of an architecture for the entity uart.
Otherwise, the least recently analyzed architecture gets used, just
like with components and default bindings.

Note that direct instantiation requires strict order of compilation,
which with most tools is a very small price to pay for having no
configurations and no components to mess with (nor the uncertainties
of default bindings)*.

* the language is not uncertain WRT default bindings, but I usually
am!

Andy
 
S

Shannon

Thanks for the replies all. Looks like direct instantiation is the
winner.

Andy, you mentioned strict order of compilation is required. Can you
elaborate?

Shannon
 
A

Andy

Thanks for the replies all. Looks like direct instantiation is the
winner.

Andy, you mentioned strict order of compilation is required. Can you
elaborate?

Shannon

No, elaboration is different from compilation (analysis) ;^)

Oh, you want more information on order of compilation...

When you compile an architecture with component instantiations, only
the component definition needs to be previously compiled (either in a
package, or in the declarative region of the instantiating
architecture itself). Subsequently, only if the component later
changes does the instantiating architecture have to be recompiled.

When you compile an architecture with a direct entity and architecture
instantiation, both the architecture and its entity must already be
compiled (naturally, the entity before its architecture).
Subsequently, any change to the entity or architecture will force a
recompile on the instantiating architecture.

If the architecture is not indicated explicitly in an entity
instantiation, then only entity changes (which would likely have
caused the component to change also, had there been one) require the
instantiating architecture to be recompiled. But the entity must have
been compiled first before the instantiating architecture.

For most tools, this is not a big problem, since they tend to take
care of knowing when to compile what, once the design is compiled
correctly the first time. Some tools allow you to just throw a list of
files at them (in any order), and they will parse them and figure out
the correct order (you have to tell them the top level usually). They
can even correctly compile modules that occur out of order in the same
file.

Clear as mud?

Andy
 
Joined
Sep 6, 2007
Messages
4
Reaction score
0
Hi all..

I have to change the layout of a website built in ASP.NET. I have the HTML/CSS code for the design. All I need to do is to use this HTML/CSS design in the website i.e in aspx pages but without changing to code i.e cs files. Can anyone give me an idea how to do that...

thnx
 
Joined
May 4, 2007
Messages
49
Reaction score
0
The 'direct instantiation' takes a little less copying and pasting because the component doesn't need to be placed into the top of the code. However, you might find that when you need to refer back to that component, you'll have to go find that component code and reopen it. It's nice when the component is declared in the code already and you can simply scroll up the page to see which ports are in's, out's, or what their bit-widths are. You also don't have to comment every port since the component is already declared in the code. Just my 2 cents.

Scott
 
S

Shannon

Um, what?

My spell checker says those were all english words but I don't think
I've ever seen them in that particular order before.

Shannon
 
M

Mike Treseler

Shannon said:
Um, what?

Compile
my_entity
before compiling
my_instance: work.my_entity(synth)

"before" might mean in the file before
or in a line above.

-- Mike Treseler
 
S

Shannon

Compile
my_entity
before compiling
my_instance: work.my_entity(synth)

"before" might mean in the file before
or in a line above.

-- Mike Treseler

Got it. Thanks Mike.

Andy: I hope you took my response in the right light. I thank you for
your response. I was being a bit "cheeky" with my response. I really
did have to read it through about ten times before I got it.

Shannon
 
A

Andy

Got it. Thanks Mike.

Andy: I hope you took my response in the right light. I thank you for
your response. I was being a bit "cheeky" with my response. I really
did have to read it through about ten times before I got it.

Shannon

You didn't want me to just GIVE you the answer, did you? ;^)

Andy
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top