R
Reza Naima
Guest
Wow, this thread had hit the 40 post mark already. First off, I want
to thank all the people that have given me a great deal of help and
insight in understanding verilog/synthesizers. It seems my biggest
problem was that I though that HDL would give me the ability to write
behavioral code and the software would be able to make it work - i.e.
if I add a delay, it generates all the required counters/etc to
implment the delay. But it seems to be a lot more primative than I had
expected.
However, I am a bit irked at the continued comments about this "digital
design" class. I have no problems taking a course that's recommended,
but when I try to map "digital design" to a real course and ask for
help doing so, I get nothing but degrading comments. So, I will ask
one last time in a more direct fasion: Rather than degrading my
abilities, please find a "digital design" class from the Berkely course
schedule. http://schedule.berkeley.edu . I also want to follow by
saying that I am not an EE major nor have I taken any EE classes in my
life. I'm a bioengineering major and the bulk of my courses have been
dealt with mechanics, chemistry, physics, biology, etc. With that
said, I have done a lot of electronics work - mostly with
microcontrollers, and the work I've done has been well liked by the
people I have worked for.
I think of verilog/HDL as a tool to use, not a career destination.
All I want is a rudementary understanding of it so I can later make
informed decisions about what the right tool to use for a task is.
And getting back to the notion of asking questions vs. doing my own
"studying" -- I've learned more in the past 40 posts about
verilog/synthesizers than I have in the dozens of hours I've spent
reading books and web pages on the material. And in response to the
RTFM, I actually followed someone else's suggestion of googling for
"tristate verilog". I found some docs for altera, whch didn't seem to
work for xilinx. After bit of playing, I figured it out. I
appreciate that you answered my question, twice, but there was no need
to be insultive about it. I really didn't know where to look about the
tristate thing - you could have said "look in the xxxxx docs" or given
me the answer and had that been the end of it.
One other comment before I ask some real questions. I really want to
thank the people that have posted brief and accurate answers to my
questions as well as those that have provided me with pointers.
Ok, Real questions in response :
- Are there a standard set of templates that all synthesizers use? The
problem was that the same synthesizer said it couldnt find a template
for one target CPLD, but it found it for another. Why would this be?
Does anyone know of a respository for standard templates?
- There have been several replies indicating that the order of the
statment has to do with priorities, and an async reset has a higher
priority. Why is this? Is this just how flipflops are physically
built? Andy gave an example about a high vs. low reset. Was the
second example invalid? My code "if (!reset)..." failed, but what if
it was an active low reset. Then shouldn't it have worked? Or was the
reset implied in the <= 0, in which case the problem was not the
(!reset), but rather the location of <=0? What exactly defines a
reset?
- about the rising & falling edge of a signal triggering a block - if
two flipflops are required, so be it. is it bad form? Shouldn't the
synthesizer be able to deal with it?
thnx,
reza
p.s. people keep saying there are great resources on the net, but i'm
having problems finding good information. If anyone knows of some good
sites, I would love to know. google is not a valid answer to this
question, but google search terms are if you've found good info using
the phrase.
to thank all the people that have given me a great deal of help and
insight in understanding verilog/synthesizers. It seems my biggest
problem was that I though that HDL would give me the ability to write
behavioral code and the software would be able to make it work - i.e.
if I add a delay, it generates all the required counters/etc to
implment the delay. But it seems to be a lot more primative than I had
expected.
However, I am a bit irked at the continued comments about this "digital
design" class. I have no problems taking a course that's recommended,
but when I try to map "digital design" to a real course and ask for
help doing so, I get nothing but degrading comments. So, I will ask
one last time in a more direct fasion: Rather than degrading my
abilities, please find a "digital design" class from the Berkely course
schedule. http://schedule.berkeley.edu . I also want to follow by
saying that I am not an EE major nor have I taken any EE classes in my
life. I'm a bioengineering major and the bulk of my courses have been
dealt with mechanics, chemistry, physics, biology, etc. With that
said, I have done a lot of electronics work - mostly with
microcontrollers, and the work I've done has been well liked by the
people I have worked for.
I think of verilog/HDL as a tool to use, not a career destination.
All I want is a rudementary understanding of it so I can later make
informed decisions about what the right tool to use for a task is.
And getting back to the notion of asking questions vs. doing my own
"studying" -- I've learned more in the past 40 posts about
verilog/synthesizers than I have in the dozens of hours I've spent
reading books and web pages on the material. And in response to the
RTFM, I actually followed someone else's suggestion of googling for
"tristate verilog". I found some docs for altera, whch didn't seem to
work for xilinx. After bit of playing, I figured it out. I
appreciate that you answered my question, twice, but there was no need
to be insultive about it. I really didn't know where to look about the
tristate thing - you could have said "look in the xxxxx docs" or given
me the answer and had that been the end of it.
One other comment before I ask some real questions. I really want to
thank the people that have posted brief and accurate answers to my
questions as well as those that have provided me with pointers.
Ok, Real questions in response :
- Are there a standard set of templates that all synthesizers use? The
problem was that the same synthesizer said it couldnt find a template
for one target CPLD, but it found it for another. Why would this be?
Does anyone know of a respository for standard templates?
- There have been several replies indicating that the order of the
statment has to do with priorities, and an async reset has a higher
priority. Why is this? Is this just how flipflops are physically
built? Andy gave an example about a high vs. low reset. Was the
second example invalid? My code "if (!reset)..." failed, but what if
it was an active low reset. Then shouldn't it have worked? Or was the
reset implied in the <= 0, in which case the problem was not the
(!reset), but rather the location of <=0? What exactly defines a
reset?
- about the rising & falling edge of a signal triggering a block - if
two flipflops are required, so be it. is it bad form? Shouldn't the
synthesizer be able to deal with it?
thnx,
reza
p.s. people keep saying there are great resources on the net, but i'm
having problems finding good information. If anyone knows of some good
sites, I would love to know. google is not a valid answer to this
question, but google search terms are if you've found good info using
the phrase.