What am I missing?

R

rickman

Guest
I am writing a test bench and I can't get past this one error. It is
saying that the type name is not defined and of course that generates
a few other errors because the signal is not defined then. What am I
missing?

In a library file...

constant CODECDATAWDTH : integer := 24;

subtype CDC_DATA_RNG is natural range CODECDATAWDTH-1 downto 0;
subtype CDC_DATA_TYPE is std_logic_vector(CDC_DATA_RNG); -- data
path to/from codec
type CDC_DATA_BLK is array(natural range <>) of CDC_DATA_TYPE;

This is where CDC_DATA_BLK is defined.

This library is included in the test bench (and all other files in the
project). The line that is throwing the error is...

constant CodecSamples : CDC_DATA_BLK (7 downto 0) :=
(X"123456", X"234567", x"345678", X"456789",
X"56789A", X"6789AB", X"789ABC", X"89ABCD");

The error message is...

ERROR:HDLParsers:3312 - "C:/Arius/Boards/IRIG-B/FPGA/IRIG-B-X/
IRIG_TB.vhd" Line 86. Undefined symbol 'CDC_DATA_BLK'.

Other types, subtypes and constants from the same library are seen and
produce no error. In particular, "CDC_DATA_TYPE" is used in the same
test bench without error. So there is either something wrong with the
type definition for CDC_DATA_TYPE, or there is something wrong with
the way I am using it and I don't see either...

Since it compiles the common library without error, "Undefined symbol"
just isn't the error I would expect.

Rick
 
On May 16, 10:07 pm, rickman <gnu...@gmail.com> wrote:
I am writing a test bench and I can't get past this one error. It is
saying that the type name is not defined and of course that generates
a few other errors because the signal is not defined then. What am I
missing?

In a library file...

constant CODECDATAWDTH : integer := 24;

subtype CDC_DATA_RNG is natural range CODECDATAWDTH-1 downto 0;
subtype CDC_DATA_TYPE is std_logic_vector(CDC_DATA_RNG); -- data
path to/from codec
type CDC_DATA_BLK is array(natural range <>) of CDC_DATA_TYPE;

This is where CDC_DATA_BLK is defined.

This library is included in the test bench (and all other files in the
project). The line that is throwing the error is...

constant CodecSamples : CDC_DATA_BLK (7 downto 0) :=
(X"123456", X"234567", x"345678", X"456789",
X"56789A", X"6789AB", X"789ABC", X"89ABCD");

The error message is...

ERROR:HDLParsers:3312 - "C:/Arius/Boards/IRIG-B/FPGA/IRIG-B-X/
IRIG_TB.vhd" Line 86. Undefined symbol 'CDC_DATA_BLK'.

Other types, subtypes and constants from the same library are seen and
produce no error. In particular, "CDC_DATA_TYPE" is used in the same
test bench without error. So there is either something wrong with the
type definition for CDC_DATA_TYPE, or there is something wrong with
the way I am using it and I don't see either...

Since it compiles the common library without error, "Undefined symbol"
just isn't the error I would expect.

Rick
Opps, that should have been "So there is either something wrong with
the
type definition for CDC_DATA_BLK..."

I also tried it as a subtype with no joy. I have no idea what is
wrong with this...
 
On May 16, 10:32 pm, rickman <gnu...@gmail.com> wrote:
On May 16, 10:07 pm, rickman <gnu...@gmail.com> wrote:



I am writing a test bench and I can't get past this one error. It is
saying that the type name is not defined and of course that generates
a few other errors because the signal is not defined then. What am I
missing?

In a library file...

constant CODECDATAWDTH : integer := 24;

subtype CDC_DATA_RNG is natural range CODECDATAWDTH-1 downto 0;
subtype CDC_DATA_TYPE is std_logic_vector(CDC_DATA_RNG); -- data
path to/from codec
type CDC_DATA_BLK is array(natural range <>) of CDC_DATA_TYPE;

This is where CDC_DATA_BLK is defined.

This library is included in the test bench (and all other files in the
project). The line that is throwing the error is...

constant CodecSamples : CDC_DATA_BLK (7 downto 0) :=
(X"123456", X"234567", x"345678", X"456789",
X"56789A", X"6789AB", X"789ABC", X"89ABCD");

The error message is...

ERROR:HDLParsers:3312 - "C:/Arius/Boards/IRIG-B/FPGA/IRIG-B-X/
IRIG_TB.vhd" Line 86. Undefined symbol 'CDC_DATA_BLK'.

Other types, subtypes and constants from the same library are seen and
produce no error. In particular, "CDC_DATA_TYPE" is used in the same
test bench without error. So there is either something wrong with the
type definition for CDC_DATA_TYPE, or there is something wrong with
the way I am using it and I don't see either...

Since it compiles the common library without error, "Undefined symbol"
just isn't the error I would expect.

Rick

Opps, that should have been "So there is either something wrong with
the
type definition for CDC_DATA_BLK..."

I also tried it as a subtype with no joy. I have no idea what is
wrong with this...
Persistence pays off. I kept nosing around the tool and finally found
it. The help tool is a java piece of C**P that seems to like crashing
Firefox, so it was not easy finding this. Turns out there is a
setting of "incremental" for compiles under the simulator. So it was
not compiling my library files! Once I turned that off, it all seems
to work ok now and I even have a simulation running.

Now that the HDL is up to snuff, I need to switch back to the Lattice
tool to see if I have that running yet. I had to uninstall every
version of the previous tools. Seems they like to crap on each
other. I guess I should expect that with CAD tools.

Rick
 
Quite the conversation I am having with myself, eh?

There was one other thing I found that seems very odd. I couldn't get
the Xilinx ISE simulator to run until I added a rule to my
firewall!!! I guess the program is going out over the "network" to
find itself???

Even with a rule in place for the mode of access, I have to authorize
the simulator each time the source is changed because the checksum of
the program is different! Is the ISE simulator compiling to native
code or something? This is so bizarre. Anyone know of a way to not
have to keep telling the firewall it is ok for the program to find
itself on the network?

Rick
 
As long as I am ranting about the Xilinx ISE simulator, is it me or is
this thing missing lots of functionality?

I can't figure out how to display the values of any signals or
variables without putting them in the waveform window. Even then, I
can't figure out how to put variables in the waveform window, so they
are invisible at this point. It is actually a bit difficult writing a
test bench without variables. I am having a hard time with signals
because you have to add a "wait for 0 ns" command to get your signal
assignment to take effect. I have been finding a lot of test bench
issues because of that.

The waveform display window is pretty goofy for want of a better
word. The scroll bars do not accurately reflect what is currently
displayed in the window. Trying to control the display with them is
difficult since any action that changes the display without using the
scrollbars means you first have to move them to the right neighborhood
and then you can move then to where you wanted them.

There are any number of things that I either can't figure out how to
do, or is just plain missing from this tool. All in all, this looks
like something that was cobbled together from open source projects,
and very immature ones at that. But maybe I am doing open source an
injustice with that comparison.

Have I just gotten too spoiled by all the great software being written
in Redmond?

All that being said, I have to add that I am using this tool because I
can't get the Lattice tools to work because of licensing issues. I
ordered the Lattice tools the last week of April and by the time I
received it and opened the package, they will no longer license the
ModelSim software that I paid for. So I guess a poor, but working
program beats the crap out of a program that I can't get licensed!

One of these days I am going to try moving over to open source
software. There has to be something out there that is better than
this. I was very surprised at how well the open source PCB layout
program, FreePCB, works. Maybe there are open source simulators that
are just as usable...

Rick
 
rickman wrote:

One of these days I am going to try moving over to open source
software. There has to be something out there that is better than
this.
There are open-source projects, but nothing ready
for serious work. The best value on a commercial
simulator is the oem modelsim that comes with
a quartus license.

-- Mike Treseler
 
Hi Rick,

Thanks for the feedback on ISim. I know I am not following the correct
way of responding and adding my comments inline instead so I apologize
if this is hard to read.

On May 18, 9:07 pm, rickman <gnu...@gmail.com> wrote:
As long as I am ranting about the XilinxISEsimulator, is it me or is
this thing missing lots of functionality?

Duth - ISim from the GUI side does have a lot of work to do. The
engine side is stable and very usable, although the GUI is still a
little quirky. This is currently being worked on. This does not mean
that it is not usable. It has come a long way over the past couple of
years, although it still has more to go.

I can't figure out how to display the values of any signals or
variables without putting them in the waveform window. Even then, I
can't figure out how to put variables in the waveform window, so they
are invisible at this point. It is actually a bit difficult writing a
test bench without variables. I am having a hard time with signals
because you have to add a "wait for 0 ns" command to get your signal
assignment to take effect. I have been finding a lot of test bench
issues because of that.
Duth - Sounds like you are using 9.1i or older version of ISE. I would
highly recommend that you update to the 10.1 version, as we have
introduced a new sim objects window, where by you can view values
without having to add it to the waveform.
The waveform display window is pretty goofy for want of a better
word. The scroll bars do not accurately reflect what is currently
displayed in the window. Trying to control the display with them is
difficult since any action that changes the display without using the
scrollbars means you first have to move them to the right neighborhood
and then you can move then to where you wanted them.
Duth - Again test this out in 10.1 and let me know if it is still a
problem. It is not perfect, although it is significantly better than
the 9.2i release.

There are any number of things that I either can't figure out how to
do, or is just plain missing from this tool. All in all, this looks
like something that was cobbled together from open source projects,
and very immature ones at that. But maybe I am doing open source an
injustice with that comparison.

Have I just gotten too spoiled by all the great software being written
in Redmond?

Duth - I would not say that. As a customer of Xilinx and user of the
SW toolset, you have every right to compare it against any of the
applications out there. Can you let me know what you think needs work?
Feel free to email me directly if you want. I work in the Product
Marketing Dept of this Simulator.

All that being said, I have to add that I am using this tool because I
can't get the Lattice tools to work because of licensing issues. I
ordered the Lattice tools the last week of April and by the time I
received it and opened the package, they will no longer license the
ModelSim software that I paid for. So I guess a poor, but working
program beats the crap out of a program that I can't get licensed!

One of these days I am going to try moving over to open source
software. There has to be something out there that is better than
this. I was very surprised at how well the open source PCB layout
program, FreePCB, works. Maybe there are open source simulators that
are just as usable...
Duth - Open source tools are an option and although, I request you to
not give up on this tool as yet. We need more and more people using it
and giving us feedback. We are in the business to provide you with the
correct tools in order to meet your requirements with Xilinx FPGAs. If
something is not meeting that need, please let me know.

Thanks
Duth


 
Hi Duth,

Thanks for the understanding reply. To some extent I am still venting
about the big mess I was in because of the licensing issues with the
Lattice software I *paid* for. So Xilinx got a little of that rage...
8^*

I am glad that you guys understand that the software has a lot of
short comings. I am using 9.2. I am still on dialup so it is a
*major* production to download something as large as a tool
distribution. In essence I have to go somewhere that offers high
speed and camp out for the hour or two that it takes to download it.
This makes "free" software pretty expensive at times. In fact,
because the software is so huge and the last time I downloaded it, it
was still a single file, I can't even use a computer that doesn't have
a DVD burner. I believe I was able to use a 4 GB flash the last
time. I hope the distribution doesn't go beyond that any time soon.

As long as you are open to suggestions/criticism... I don't like to
move back and forth between the mouse and the keyboard any more than I
have to. Each time I switch I have to readjust the cursor or find the
home position and it takes time and is tiring if done a lot. I found
that the GUI does not accept hardly any of the common keystrokes. For
example, I couldn't use any keys to move around on the waveform
display. I also couldn't start a search for a waveform using a
keystroke, at least not any that I am familiar with for this function
(cntl-F, F3). The only way I found of starting a search is to use the
right click context menu.

It has actually been awhile since I have worked with a simulator. But
I have been using a lot of programs with graphical displays. It seems
that nearly every single one has different controls! Everyone wants
to invent their own thing. I would suggest that you find a tool (it
doesn't have to be a simulator) that has a good user interface and
implement something similar to that. At this point my favorite for
being just plain easy to use is FreePCB. Of course it has a different
focus, but a lot of the controls will map over to nearly any display
program.

BTW, I should have put a smiley beside my comment about Redmond. That
was supposed to be a funny!

I have not seen many open source programs that did a lot for me. But
FreePCB seems like it has been done with a lot of thought and
attention to detail. I don't know if there are any open source FPGA
tools that would compare in quality and usability. I may do a survey
at some later point. Heck, I'm even willing to try Verilog!

I will try downloading a current ISE when I get a chance. But right
now I need to get a board out the door!

Rick


On May 19, 3:26 pm, Duth <premd...@gmail.com> wrote:
Hi Rick,

Thanks for the feedback on ISim. I know I am not following the correct
way of responding and adding my comments inline instead so I apologize
if this is hard to read.

On May 18, 9:07 pm, rickman <gnu...@gmail.com> wrote:> As long as I am ranting about the XilinxISEsimulator, is it me or is
this thing missing lots of functionality?

Duth - ISim from the GUI side does have a lot of work to do. The
engine side is stable and very usable, although the GUI is still a
little quirky. This is currently being worked on. This does not mean
that it is not usable. It has come a long way over the past couple of
years, although it still has more to go.

I can't figure out how to display the values of any signals or
variables without putting them in the waveform window. Even then, I
can't figure out how to put variables in the waveform window, so they
are invisible at this point. It is actually a bit difficult writing a
test bench without variables. I am having a hard time with signals
because you have to add a "wait for 0 ns" command to get your signal
assignment to take effect. I have been finding a lot of test bench
issues because of that.

Duth - Sounds like you are using 9.1i or older version of ISE. I would
highly recommend that you update to the 10.1 version, as we have
introduced a new sim objects window, where by you can view values
without having to add it to the waveform.



The waveform display window is pretty goofy for want of a better
word. The scroll bars do not accurately reflect what is currently
displayed in the window. Trying to control the display with them is
difficult since any action that changes the display without using the
scrollbars means you first have to move them to the right neighborhood
and then you can move then to where you wanted them.

Duth - Again test this out in 10.1 and let me know if it is still a
problem. It is not perfect, although it is significantly better than
the 9.2i release.

There are any number of things that I either can't figure out how to
do, or is just plain missing from this tool. All in all, this looks
like something that was cobbled together from open source projects,
and very immature ones at that. But maybe I am doing open source an
injustice with that comparison.

Have I just gotten too spoiled by all the great software being written
in Redmond?

Duth - I would not say that. As a customer of Xilinx and user of the
SW toolset, you have every right to compare it against any of the
applications out there. Can you let me know what you think needs work?
Feel free to email me directly if you want. I work in the Product
Marketing Dept of this Simulator.

All that being said, I have to add that I am using this tool because I
can't get the Lattice tools to work because of licensing issues. I
ordered the Lattice tools the last week of April and by the time I
received it and opened the package, they will no longer license the
ModelSim software that I paid for. So I guess a poor, but working
program beats the crap out of a program that I can't get licensed!

One of these days I am going to try moving over to open source
software. There has to be something out there that is better than
this. I was very surprised at how well the open source PCB layout
program, FreePCB, works. Maybe there are open source simulators that
are just as usable...

Duth - Open source tools are an option and although, I request you to
not give up on this tool as yet. We need more and more people using it
and giving us feedback. We are in the business to provide you with the
correct tools in order to meet your requirements with Xilinx FPGAs. If
something is not meeting that need, please let me know.

Thanks
Duth



Rick
 
Uwe Bonnes wrote:

Mike,
did you try Iverilog lately?
I have tried it. Mr. Williams has done an amazing job.
But I am mainly a vhdl guy, and for or my work,
a mixed-mode simulator is a huge advantage.

-- Mike Treseler
 
Uwe Bonnes wrote:

Probably not a way you want to go, but on the iverilog list was a discussion
recently about VHDL-Verilog converters.
When I do have to write verilog,
I first code a vhdl entity,
in this style:
http://mysite.verizon.net/miketreseler/count_enable.vhd
then reformat the code into verilog
in this style:
http://mysite.verizon.net/miketreseler/count_enable.v

-- Mike Treseler
 
On May 19, 10:55 pm, rickman <gnu...@gmail.com> wrote:
Hi Duth,

Thanks for the understanding reply. To some extent I am still venting
about the big mess I was in because of the licensing issues with the
Lattice software I *paid* for. So Xilinx got a little of that rage...
8^*

I am glad that you guys understand that the software has a lot of
short comings. I am using 9.2. I am still on dialup so it is a
*major* production to download something as large as a tool
distribution. In essence I have to go somewhere that offers high
speed and camp out for the hour or two that it takes to download it.
This makes "free" software pretty expensive at times. In fact,
because the software is so huge and the last time I downloaded it, it
was still a single file, I can't even use a computer that doesn't have
a DVD burner. I believe I was able to use a 4 GB flash the last
time. I hope the distribution doesn't go beyond that any time soon.

As long as you are open to suggestions/criticism... I don't like to
move back and forth between the mouse and the keyboard any more than I
have to. Each time I switch I have to readjust the cursor or find the
home position and it takes time and is tiring if done a lot. I found
that the GUI does not accept hardly any of the common keystrokes. For
example, I couldn't use any keys to move around on the waveform
display. I also couldn't start a search for a waveform using a
keystroke, at least not any that I am familiar with for this function
(cntl-F, F3). The only way I found of starting a search is to use the
right click context menu.

It has actually been awhile since I have worked with asimulator. But
I have been using a lot of programs with graphical displays. It seems
that nearly every single one has different controls! Everyone wants
to invent their own thing. I would suggest that you find a tool (it
doesn't have to be asimulator) that has a good user interface and
implement something similar to that. At this point my favorite for
being just plain easy to use is FreePCB. Of course it has a different
focus, but a lot of the controls will map over to nearly any display
program.

BTW, I should have put a smiley beside my comment about Redmond. That
was supposed to be a funny!

I have not seen many open source programs that did a lot for me. But
FreePCB seems like it has been done with a lot of thought and
attention to detail. I don't know if there are any open source FPGA
tools that would compare in quality and usability. I may do a survey
at some later point. Heck, I'm even willing to try Verilog!

I will try downloading a currentISEwhen I get a chance. But right
now I need to get a board out the door!

Rick

On May 19, 3:26 pm, Duth <premd...@gmail.com> wrote:

Hi Rick,

Thanks for the feedback on ISim. I know I am not following the correct
way of responding and adding my comments inline instead so I apologize
if this is hard to read.

On May 18, 9:07 pm, rickman <gnu...@gmail.com> wrote:> As long as I am ranting about the XilinxISEsimulator, is it me or is
this thing missing lots of functionality?

Duth - ISim from the GUI side does have a lot of work to do. The
engine side is stable and very usable, although the GUI is still a
little quirky. This is currently being worked on. This does not mean
that it is not usable. It has come a long way over the past couple of
years, although it still has more to go.

I can't figure out how to display the values of any signals or
variables without putting them in the waveform window. Even then, I
can't figure out how to put variables in the waveform window, so they
are invisible at this point. It is actually a bit difficult writing a
test bench without variables. I am having a hard time with signals
because you have to add a "wait for 0 ns" command to get your signal
assignment to take effect. I have been finding a lot of test bench
issues because of that.

Duth - Sounds like you are using 9.1i or older version ofISE. I would
highly recommend that you update to the 10.1 version, as we have
introduced a new sim objects window, where by you can view values
without having to add it to the waveform.

The waveform display window is pretty goofy for want of a better
word. The scroll bars do not accurately reflect what is currently
displayed in the window. Trying to control the display with them is
difficult since any action that changes the display without using the
scrollbars means you first have to move them to the right neighborhood
and then you can move then to where you wanted them.

Duth - Again test this out in 10.1 and let me know if it is still a
problem. It is not perfect, although it is significantly better than
the 9.2i release.

There are any number of things that I either can't figure out how to
do, or is just plain missing from this tool. All in all, this looks
like something that was cobbled together from open source projects,
and very immature ones at that. But maybe I am doing open source an
injustice with that comparison.

Have I just gotten too spoiled by all the great software being written
in Redmond?

Duth - I would not say that. As a customer of Xilinx and user of the
SW toolset, you have every right to compare it against any of the
applications out there. Can you let me know what you think needs work?
Feel free to email me directly if you want. I work in the Product
Marketing Dept of thisSimulator.

All that being said, I have to add that I am using this tool because I
can't get the Lattice tools to work because of licensing issues. I
ordered the Lattice tools the last week of April and by the time I
received it and opened the package, they will no longer license the
ModelSim software that I paid for. So I guess a poor, but working
program beats the crap out of a program that I can't get licensed!

One of these days I am going to try moving over to open source
software. There has to be something out there that is better than
this. I was very surprised at how well the open source PCB layout
program, FreePCB, works. Maybe there are open source simulators that
are just as usable...

Duth - Open source tools are an option and although, I request you to
not give up on this tool as yet. We need more and more people using it
and giving us feedback. We are in the business to provide you with the
correct tools in order to meet your requirements with Xilinx FPGAs. If
something is not meeting that need, please let me know.

Thanks
Duth

Rick
Hi Rick,

Again thanks for the feedback. With regards your concern with the way
the GUI works, where you would like keystrokes for as many commands as
possible. You are correct, there are multiple reasons for having this
capability. This is something we have planned for the 11.1 release.
Almost anything you can do with the a mouse you will be able to do
with the keyboard using keystrokes. This was a key ease of use issue
that was missing in the interface and this is why we used multiple GUI
tools out there to come up with the interface for our next version of
the simulator.

The search is currently planned to work like how you can in othertools
such as firefox, where you can start to type with the correct
keystroke and then it would dynamically search as you type, so that
you can get to your signal of interest with the least number of clicks
as possible.

To be honest, I have not heard of FreePCB before, although I will take
a look at it to understand what you like about the interface of the
tool.

Thanks again for your feedback!

This is really for everyone, please feel free to send in any
suggestions for the product.

Thanks
Duth
 
On May 21, 11:25 am, Duth <premd...@gmail.com> wrote:
Hi Rick,

Again thanks for the feedback. With regards your concern with the way
the GUI works, where you would like keystrokes for as many commands as
possible. You are correct, there are multiple reasons for having this
capability. This is something we have planned for the 11.1 release.
Almost anything you can do with the a mouse you will be able to do
with the keyboard using keystrokes. This was a key ease of use issue
that was missing in the interface and this is why we used multiple GUI
tools out there to come up with the interface for our next version of
the simulator.
That sounds pretty good.

The search is currently planned to work like how you can in othertools
such as firefox, where you can start to type with the correct
keystroke and then it would dynamically search as you type, so that
you can get to your signal of interest with the least number of clicks
as possible.
One of the issues I have with signal names in synthesis is that the
names get changed a lot, but I assume that is not so much of an issue
in the simulator. I will look forward to seeing all the improvements
you make.


To be honest, I have not heard of FreePCB before, although I will take
a look at it to understand what you like about the interface of the
tool.
FreePCB has some GUI shortcomings related to selection of overlapping
objects, but that would not be very relevant to the simulator. The
main think I like about it for layout is that you can pan and zoom
easily using just the scrollwheel on the mouse. Other programs have a
similar feature, but none do such a good job of implementing it. In
fact, some programs turn things on their heads which makes it so very,
very hard to use such a simple feature. For example, one of the
Gerber viewers, Gerbv IIRC, zooms using the scroll wheel, but instead
of moving both the image and the cursor to the center of the screen,
it only moves the image! So if you click the wheel more than once, a
new point is under the cursor and the image keeps scrolling away from
the cursor! I don't see how anyone could use that effectively.

I wish I had some concrete examples about the ISE simulator to give
you. But it takes time and effort to note these issues and present
them in a coherent manner with constructive suggestions. The best
thing I can tell you is to use a lot of different programs, and not
just simulators or waveform viewers, and try to pick the best ideas
from all of them. But also, try to implement the lowest common
denominator so that there is a base level of the user interface that
works the same as any other program on the same platform. CUI is a
powerful thing.

Most likely the program catagory that would have the most in common
with an HDL simulator is programming language debuggers. They have a
lot in common in terms of viewing the code and presenting information
about it. Being able to easily point to a piece of code and getting
useful information is important. I seem to recall that there are
significant lines in my code where I could not place a breakpoint. I
had no idea why I couldn't place one there and I had no idea how to
debug that line of code. I seem to recall that it was a concurrent
assignment. If I can't put a breakpoint on a concurrent assignment,
how do I tell what that line is actually doing?
 

Welcome to EDABoard.com

Sponsor

Back
Top