From: Martin Thompson on
KJ <kkjennings(a)sbcglobal.net> writes:

> On Mar 5, 5:34�am, Martin Thompson <martin.j.thomp...(a)trw.com> wrote:
>>
>> Am I the only one that makes *no* use of the various "project things"
>> (either in Modelsim or Aldec)? �I just have a makefile and use the GUI
>> to run the sim (from "their" command-line) and show me the waveforms.
>> I guess I don't like to be tied to a tool (as much as I can manage)
>> much as I don't like to be tied to a particular silicon vendor (as
>> much as I can manage :)
>>
>
> But you're also running *their* commands to compile, run and view so
> you're not really any more independent.

This is true, but the "porting" can be done once and pushed into
scripts. Porting my "muscle-memory" is a lot harder, if the buttons
to click move around :)

Waveform viewing is still an issue, as that will likely change the
most, but I spend a lot less time doing that than most other tasks.
Certainly, the differences between two tools didn't pain me much when
I was trying two in parallel.

> Maintaining make files can be a chore also, unless you use something
> to help you manage it...but then you're now dependent on that tool
> as well.

Emacs. I don't mind being dependent on that so much.

>
>> Am I missing something valuable, or is it just different?
>>
> Probably depends on which scenario is more likely to occur
> 1. Change sim tools

Or using a variety all the time... I'd like to do more experimentation
and comparison, esp. of the open source tools.

> 2. Add new developers (temporary, or because you move on to something
> else in the company)
>
> If #1 is prevalent, then maybe using other tools to help you manage
> 'make' is better. If #2 is more prevalent, then using the tool's
> project system is probably better in easing the transition.

I guess that's a point in its favour (assuming I can't "convert" the
incomers to Emacs :)

> If neither is particularly likely...well...then it probably doesn't
> much matter since one can probably be just as productive with
> various approaches.

Which is probably why we have lots of approaches - dofferent strokes
and all that!

Cheers,
Martin

--
martin.j.thompson(a)trw.com
TRW Conekt - Consultancy in Engineering, Knowledge and Technology
http://www.conekt.net/electronics.html
From: Andy Peters on
On Mar 6, 9:41 am, KJ <kkjenni...(a)sbcglobal.net> wrote:
> On Mar 5, 4:53 pm, Andy Peters <goo...(a)latke.net> wrote:
>
>
>
> > It turns out that it is reasonable to create one workspace for an FPGA
> > project and within this workspace create a "design" for the
> > subentities and the top level. If you let it use the design name as
> > the working library for the design, then as long as you "use" the
> > library in a higher-level source, that source can see those other
> > libraries.
>
> Why do you think that you need to segregate the library that the
> source files get compiled into?  In other words, what is wrong with
> compiling everything into 'work'?  That's not a source file, it's an
> intermediate folder(s) that gets created along the way to doing what
> you need to have done.  What do you gain by trying to have tidy
> intermediate folders?

As I said, I have always just dumped everything into 'work' without
thinking too much about it, mainly because it always just worked. I
thought about using separate libraries as a sop to how Active-HDL
organizes its workspaces.

> Having a separate library helps you avoid name clashes, but for things
> that you're developing yourself this is more easily avoided by
> considering some of the following points:
> - Question the validity of why you have two things named the same
> (presumably doing the same thing)

No issues with namespaces here. I've adopted a simple prefix
nomenclature for things that hopefully mitigates any potential
clashes.

> > Now I'm thinking that the usual method of doing:
>
> >     u_foo : entity work.foo port map (bar => bar, bletch => bletch);
>
> > might be better as:
>
> >     u_foo : entity foo.foo port map (bar => bar, bletch => bletch);
>
> > The other option is to create a package with a component definition
> > for foo, and analyze that package into the foo library, so the
> > instantiation can be:
>
> >     u_foo : foo port map (bar => bar, bletch => bletch);
>
> > I really don't know which is "better."
>
> Neither one is particularly good in my opinion.  The reasons against
> the first approach I've mentioned above (i.e. what do you really get
> for not simply compiling everything into 'work'?).  The only place
> I've found a component declaration to be useful is when you would like
> to use a configuration to swap things out and about.  The only time
> I've found configurations to be useful really is when the VHDL source
> is not really under my control (such as when a PCBA model is generated
> by a CAD tool).

I agree: I never use component declarations except to work around
other tool issues (like with the Xilinx EDK and how it apparently
analyzes things into particular non-work libraries).

> With a component declaration, you still have to decide where to put
> that declaration.  The best place is in the source file with the
> entity so that changes to one are more likely to get changed in both
> places.  Given that, I don't see how components will help you manage
> anything better....my two or three cents

Those component declarations I've described are in a package that's in
the same source file as the entity.

I think I need to simply stop using the Active-HDL GUI and do the
command-line thing.

-a
From: rickman on
On Mar 8, 6:53 am, Martin Thompson <martin.j.thomp...(a)trw.com> wrote:
> rickman <gnu...(a)gmail.com> writes:
> > I find the GUI will save me a lot of typing when instantiating
> > modules.  I use the "generate test bench" feature to build a file
> > with the meat and potatoes in it and I copy that to the higher level
> > module.
>
> Ahh, I use VHDL-mode in Emacs for that, which is why I haven't missed
> it :)

Are you saying that Emacs understands VHDL well enough to build a test
bench for you? Will it also build a component declaration or
instantiation automatically? These three things could be automated,
but I have never taken the time to do it. Making it part of the
editor makes perfect sense.

Rick
From: rickman on
On Mar 8, 7:04 am, Martin Thompson <martin.j.thomp...(a)trw.com> wrote:
> KJ <kkjenni...(a)sbcglobal.net> writes:
>
> I guess that's a point in its favour (assuming I can't "convert" the
> incomers to Emacs :)

You can convert me. I just need to know that it is an advantage to
switch.

Rick
From: Andy Peters on
On Mar 8, 1:32 pm, rickman <gnu...(a)gmail.com> wrote:
> On Mar 8, 6:53 am, Martin Thompson <martin.j.thomp...(a)trw.com> wrote:
>
> > rickman <gnu...(a)gmail.com> writes:
> > > I find the GUI will save me a lot of typing when instantiating
> > > modules.  I use the "generate test bench" feature to build a file
> > > with the meat and potatoes in it and I copy that to the higher level
> > > module.
>
> > Ahh, I use VHDL-mode in Emacs for that, which is why I haven't missed
> > it :)
>
> Are you saying that Emacs understands VHDL well enough to build a test
> bench for you?

It will create a skeleton for you.

> Will it also build a component declaration or
> instantiation automatically?  These three things could be automated,
> but I have never taken the time to do it.  Making it part of the
> editor makes perfect sense.

The skeleton has a nice header, an instance of the DUT, signal
declarations for all DUT I/O and a simple clock generator. Of course
you have to create your own stimulus and add instantiations of other
models as necessary.

-a
First  |  Prev  |  Next  |  Last
Pages: 1 2 3 4 5 6 7 8 9
Prev: Antti....
Next: Laptop for FPGA design?