V
vsh
Guest
any comments on either VHDL or Verilog?
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
VHDLany comments on either VHDL or Verilog?
Yes, *both* languages have comments!any comments on either VHDL or Verilog?
Can't comment on VHDL other than to say it always strikes me asany comments on either VHDL or Verilog?
A competent designer could use either to implement a digital logic system.any comments on either VHDL or Verilog?
With the 2008 fixed point package, VHDL allows synthesizable fixedOn Jan 29, 12:04 am, vsh <henry.val.sc...@gmail.com> wrote:
any comments on either VHDL or Verilog?
Can't comment on VHDL other than to say it always strikes me as
difficult to decipher and untidy looking. I'd be interested to know
if there's anything useful that you can do in VHDL that you can't in
Verilog.
I'm a Verilog user and like the straight-forward syntax. Like
anything you can make a mess if you don't try hard enough not to.
(snip)any comments on either VHDL or Verilog?
An interesting idea, but note that, as far as I know, no computerWith the 2008 fixed point package, VHDL allows synthesizable fixed
point arithmetic of arbitrary precision and binary point location. The
arithmetic operators and types are defined to automatically handle
mixed precision/point arithmetic for you. To the best of my knowledge,
the Verilog language in its current form cannot support this
capability at all.
And that is synthesizable by anyone?Similarly, VHDL also has a floating point package that handles
arbitrary sizes of data and exponent.
I suppose higher level of abstraction is nice, but does it reallyThe fixed and floating point packages were demonstrated prior to 2008
with no changes to the language required (that's the power of VHDL
types and overloading), and the only 2008 features that the current
packages use are package generics, to allow user specification of
operator behaviors for rounding, saturation, guard bits, etc. This
highlights VHDL's inherent extensible capabilities that are completely
lacking in Verilog.
And maybe a slight disadvantage. It is a lot wordier to sayIf all you use is std_logic, std_logic_vector, or arrays of same,
there is negligible advantage to using VHDL over verilog.
Probaby depends on what kind of systems you design.It is at higher levels of abstraction, where design
productivity is maximized, that VHDL shines.
-- glenUntidy is in the eye of the beholder.
Whaaaatttt??? What does your computer capabilities have to do withAndy <jonesa...@comcast.net> wrote:
(snip)
any comments on either VHDL or Verilog?
(snip)
With the 2008 fixed point package, VHDL allows synthesizable fixed
point arithmetic of arbitrary precision and binary point location. The
arithmetic operators and types are defined to automatically handle
mixed precision/point arithmetic for you. To the best of my knowledge,
the Verilog language in its current form cannot support this
capability at all.
An interesting idea, but note that, as far as I know, no computer
hardware has support for this, so it seems strange that an HDL
would need it.
You seem to be thinking only of CPU designs. HDL is used for a lotYes you can do fixed point with different positions of the radix
point, PL/I and a small number of other languages do, but on hardware
that doesn't keep track of the radix point.
Actually you need to keep the bits that are important to yourFor multiply, you do need to keep all the product digits, so that
you can select the right ones based on the position of the product
radix point.
I haven't looked at the floating point package, but if it is describedSimilarly, VHDL also has a floating point package that handles
arbitrary sizes of data and exponent.
And that is synthesizable by anyone?
Not if you refuse to consider it.The fixed and floating point packages were demonstrated prior to 2008
with no changes to the language required (that's the power of VHDL
types and overloading), and the only 2008 features that the current
packages use are package generics, to allow user specification of
operator behaviors for rounding, saturation, guard bits, etc. This
highlights VHDL's inherent extensible capabilities that are completely
lacking in Verilog.
I suppose higher level of abstraction is nice, but does it really
help design real systems?
Yes, VHDL is definitely wordier. But then I never useIf all you use is std_logic, std_logic_vector, or arrays of same,
there is negligible advantage to using VHDL over verilog.
And maybe a slight disadvantage. It is a lot wordier to say
the same thing, more places to get it wrong.
You seem to be very CPU focused. For every Pentium type design doneIt is at higher levels of abstraction, where design
productivity is maximized, that VHDL shines.
Probaby depends on what kind of systems you design.
Is it easier to design something like a pentium with a language that
has support for floating point? For real floating point systems, it
is usual to actually design the logic in the HDL.
RickUntidy is in the eye of the beholder.
-- glen
IMHO Verilog is about describing hardware and VHDL is about describingOn Jan 29, 12:04=A0am, vsh <henry.val.sc...@gmail.com> wrote:
any comments on either VHDL or =A0Verilog?
Can't comment on VHDL other than to say it always strikes me as
difficult to decipher and untidy looking. I'd be interested to know
if there's anything useful that you can do in VHDL that you can't in
Verilog.
I'm a Verilog user and like the straight-forward syntax. Like
anything you can make a mess if you don't try hard enough not to.
(snip, I wrote)With the 2008 fixed point package, VHDL allows synthesizable fixed
point arithmetic of arbitrary precision and binary point location.
If it is useful in ASIC/FPGA designs, wouldn't it also be even moreAn interesting idea, but note that, as far as I know, no computer
hardware has support for this, so it seems strange that an HDL
would need it.
Whaaaatttt??? What does your computer capabilities have to do with
your ASIC/FPGA designs? Mixed precision/radix point arithmetic can be
very useful in an HDL design. If you are just passing data and
controlling timing then maybe not. But signal processing often has to
deal with the results of varying precision in operations.
Well, more than CPU designs, I work on systolic arrays, but evenYes you can do fixed point with different positions of the radix
point, PL/I and a small number of other languages do, but on hardware
that doesn't keep track of the radix point.
You seem to be thinking only of CPU designs. HDL is used for a lot
more than CPU designs.
And I don't expect the processor to help me figure out whichFor multiply, you do need to keep all the product digits, so that
you can select the right ones based on the position of the product
radix point.
Actually you need to keep the bits that are important to your
application. That will vary.
Again, does it synthesize pipelined arithmetic units? If not, thenSimilarly, VHDL also has a floating point package that handles
arbitrary sizes of data and exponent.
And that is synthesizable by anyone?
I haven't looked at the floating point package, but if it is described
in terms of basic operators in VHDL it should be synthesizable in
every tool. That is the point of overloading. You can define a
multiply operator for real data in terms of the basic building blocks
and this is now a part of the language. VHDL is extensible that way.
(snip)I suppose higher level of abstraction is nice, but does it really
help design real systems?
Not if you refuse to consider it.
Well, it was supposed to be an example....You seem to be very CPU focused. For every Pentium type design done
in HDL there are what, thousands of other designs?
It depends of the Verilog version in question and the type of design.there is negligible advantage to using VHDL over verilog. It is at
higher levels of abstraction, where design productivity is maximized,
that VHDL shines.
I don't really follow your reasoning here. The idea of the fixedrickman <gnu...@gmail.com> wrote:
(snip, someone wrote)
With the 2008 fixed point package, VHDL allows synthesizable fixed
point arithmetic of arbitrary precision and binary point location.
(snip, I wrote)
An interesting idea, but note that, as far as I know, no computer
hardware has support for this, so it seems strange that an HDL
would need it.
Whaaaatttt??? What does your computer capabilities have to do with
your ASIC/FPGA designs? Mixed precision/radix point arithmetic can be
very useful in an HDL design. If you are just passing data and
controlling timing then maybe not. But signal processing often has to
deal with the results of varying precision in operations.
If it is useful in ASIC/FPGA designs, wouldn't it also be even more
useful in software running on commonly (or not so commonly) available
processors? Yet none have bothered to implement it.
It could be done in software, but none of the popular languages
have any support for fixed point non-integer arithmetic.
It was one of the fun things I did in PL/I so many years ago, though.
Asking about pipelining with fixed point numbers is like asking ifYes you can do fixed point with different positions of the radix
point, PL/I and a small number of other languages do, but on hardware
that doesn't keep track of the radix point.
You seem to be thinking only of CPU designs. HDL is used for a lot
more than CPU designs.
Well, more than CPU designs, I work on systolic arrays, but even
there so, it doesn't seem likely to help much. Will it generate
pipelined arithmetic units? Of all the things that I have to think
about in logic design, the position of the binary point is one of
the smallest.
What processor? You have lost me here. A multiply provides a resultFor multiply, you do need to keep all the product digits, so that
you can select the right ones based on the position of the product
radix point.
Actually you need to keep the bits that are important to your
application. That will vary.
And I don't expect the processor to help me figure out which
ones those are.
Nope, the fixed point package does not design pipelines, it isn't aSimilarly, VHDL also has a floating point package that handles
arbitrary sizes of data and exponent.
And that is synthesizable by anyone?
I haven't looked at the floating point package, but if it is described
in terms of basic operators in VHDL it should be synthesizable in
every tool. That is the point of overloading. You can define a
multiply operator for real data in terms of the basic building blocks
and this is now a part of the language. VHDL is extensible that way.
Again, does it synthesize pipelined arithmetic units? If not, then
they aren't much use to anything I would work on. If I do it in
an FPGA that is because normal processors aren't fast enough.
But the big problem with floating point is that it takes too much logic.
The barrel shifter for pre/post normalization for an adder is huge.
(The actual addition, not so huge.)
An example of what? The fact that you can't find the utility of theI suppose higher level of abstraction is nice, but does it really
help design real systems?
Not if you refuse to consider it.
(snip)
You seem to be very CPU focused. For every Pentium type design done
in HDL there are what, thousands of other designs?
Well, it was supposed to be an example....
-- glen
AFAIK, the synthesizable subset of SV is pretty much plane oldAndy <jonesa...@comcast.net> writes:
there is negligible advantage to using VHDL over verilog. It is at
higher levels of abstraction, where design productivity is maximized,
that VHDL shines.
It depends of the Verilog version in question and the type of design.
SystemVerilog has a much higher level of abstraction when it comes to
verification and testbench code. Especially when using libraries like
UVM etc.
//Petter
--
.sig removed by request.
The suggestion, which could be wrong, was that if scaled fixed pointIf it is useful in ASIC/FPGA designs, wouldn't it also be even more
useful in software running on commonly (or not so commonly) available
processors? Yet none have bothered to implement it.
It could be done in software, but none of the popular languages
have any support for fixed point non-integer arithmetic.
It was one of the fun things I did in PL/I so many years ago, though.
I don't really follow your reasoning here. The idea of the fixed
point package is to allow a user to work with fixed point values in
VHDL without having to manually deal with all the details. You seem
to be saying that fixed point arithmetic is of no value because it is
not implemented in software. I don't see how software has anything to
do with it.
Well, the designers of conventional hardware might argue that theySoftware is implemented on programmable hardware and for
the most part is designed for the most common platforms and does not
do a good job of utilizing unusual hardware effectively. I don't see
how fixed point arithmetic would be of any value on conventional
integer oriented hardware.
In the past, the tools would not synthesize division with aYes you can do fixed point with different positions of the radix
point, PL/I and a small number of other languages do, but on hardware
that doesn't keep track of the radix point.
You seem to be thinking only of CPU designs. HDL is used for a lot
more than CPU designs.
Well, more than CPU designs, I work on systolic arrays, but even
there so, it doesn't seem likely to help much. Will it generate
pipelined arithmetic units? Of all the things that I have to think
about in logic design, the position of the binary point is one of
the smallest.
Asking about pipelining with fixed point numbers is like asking if
boxes help your car. Sure, if you want to carry oranges in a car you
can use boxes, but you don't have to. If your systolic arrays use
fixed point arithmetic then the fixed point package will help your
systolic arrays. If you don't care about the precision of your
calculations then don't bother using the fixed point package.
Yes, multiply generates a wide product, and most processors withAnd I don't expect the processor to help me figure out which
ones those are.
What processor? You have lost me here. A multiply provides a result
with as many bits as the sum of the bits in the inputs. But this many
bits are seldom needed. The fixed point package makes it a little
easier to work with the variety of formats that typically are used in
a case like this. No, the package does not figure out what you want
to do. You have to know that, but it does help hide some of the
details.
The point I didn't make very well was that floating point is stillSimilarly, VHDL also has a floating point package that handles
arbitrary sizes of data and exponent.
And that is synthesizable by anyone?
I haven't looked at the floating point package, but if it is described
in terms of basic operators in VHDL it should be synthesizable in
every tool. That is the point of overloading. You can define a
multiply operator for real data in terms of the basic building blocks
and this is now a part of the language. VHDL is extensible that way.
Again, does it synthesize pipelined arithmetic units? If not, then
they aren't much use to anything I would work on. If I do it in
an FPGA that is because normal processors aren't fast enough.
But the big problem with floating point is that it takes too much logic.
The barrel shifter for pre/post normalization for an adder is huge.
(The actual addition, not so huge.)
Nope, the fixed point package does not design pipelines, it isn't a
pipeline package. Yup, the barrel shifter is as large as a
multiplier. So what is your point? The purpose of the package is to
allow you to design floating point arithmetic without designing all
the details of the logic. It isn't going to reduce the size of the
logic.
Nope. SV synthesis is quite powerful. Arrays, and structs are first classOn Jan 31, 2:00 pm, Petter Gustad <newsmailco...@gustad.com> wrote:
Andy <jonesa...@comcast.net> writes:
there is negligible advantage to using VHDL over verilog. It is at
higher levels of abstraction, where design productivity is maximized,
that VHDL shines.
It depends of the Verilog version in question and the type of design.
SystemVerilog has a much higher level of abstraction when it comes to
verification and testbench code. Especially when using libraries like
UVM etc.
//Petter
--
.sig removed by request.
AFAIK, the synthesizable subset of SV is pretty much plane old
verilog, with all its warts.
It is very useful in some applications, for example in DSP processing.The suggestion, which could be wrong, was that if scaled fixed point
is useful in an HDL, it should also be useful in non-HDL applications.
Floating point might be too heavy in many applications, but on theThe point I didn't make very well was that floating point is still
not very usable in FPGA designs, as it is still too big. If a
design can be pipelined, then it has a chance to be fast enough
to be useful.
You are fixed to quite narrow band of FPGA applications. FPGAsHistorically, FPGA based hardware to accelerate scientific
programming has not done very well in the marketplace. People
keep trying, though, and I would like to see someone succeed.
I have no idea what bearing a forty year old computer language has torickman <gnu...@gmail.com> wrote:
(snip, I wrote)
If it is useful in ASIC/FPGA designs, wouldn't it also be even more
useful in software running on commonly (or not so commonly) available
processors? Yet none have bothered to implement it.
It could be done in software, but none of the popular languages
have any support for fixed point non-integer arithmetic.
It was one of the fun things I did in PL/I so many years ago, though.
I don't really follow your reasoning here. The idea of the fixed
point package is to allow a user to work with fixed point values in
VHDL without having to manually deal with all the details. You seem
to be saying that fixed point arithmetic is of no value because it is
not implemented in software. I don't see how software has anything to
do with it.
The suggestion, which could be wrong, was that if scaled fixed point
is useful in an HDL, it should also be useful in non-HDL applications.
The designers of PL/I believed that it would be, but designers of
other languages don't seem to have believed in it enough to include.
Personally, I liked PL/I 40 years ago, and believe that it should
have done better than it did, and scaled fixed point was a feature
that I liked to use.
Again, I don't know why you are dragging high level languages intoSoftware is implemented on programmable hardware and for
the most part is designed for the most common platforms and does not
do a good job of utilizing unusual hardware effectively. I don't see
how fixed point arithmetic would be of any value on conventional
integer oriented hardware.
Well, the designers of conventional hardware might argue that they
support scaled fixed point as long as you keep track of the radix
point yourself. It is, then, up to software to make it easier for
programmers by helping them keep track of the radix point.
I believe that in addition to PL/I that there are some other less
commonly used languages, maybe ADA, that support it.
It can be done in languages like Pascal and C, TeX and Metafont do it.
Multiplication is complicated, though, because most HLL's don't supply
the high half of the product in multiply, or allow a double length
dividend in division. Knuth wrote the Pascal routines for TeX and MF
to do it, and suggests that implementations rewrite them in assembler
for higher performance.
Oh, I see why you are talking about pipelining now. I don't think theYes you can do fixed point with different positions of the radix
point, PL/I and a small number of other languages do, but on hardware
that doesn't keep track of the radix point.
You seem to be thinking only of CPU designs. HDL is used for a lot
more than CPU designs.
Well, more than CPU designs, I work on systolic arrays, but even
there so, it doesn't seem likely to help much. Will it generate
pipelined arithmetic units? Of all the things that I have to think
about in logic design, the position of the binary point is one of
the smallest.
Asking about pipelining with fixed point numbers is like asking if
boxes help your car. Sure, if you want to carry oranges in a car you
can use boxes, but you don't have to. If your systolic arrays use
fixed point arithmetic then the fixed point package will help your
systolic arrays. If you don't care about the precision of your
calculations then don't bother using the fixed point package.
In the past, the tools would not synthesize division with a
non-constant divisor. If you generate the division logic yourself,
you can add in any pipelining needed. (I did one once, and not for
a systolic array.) With the hardware block multipliers in many FPGAs,
it may not be necessary to generate pipelined multipliers, but many
will want pipelined divide.
I have no interest in what HLLs do. I use HDLs to design hardware andAnd I don't expect the processor to help me figure out which
ones those are.
What processor? You have lost me here. A multiply provides a result
with as many bits as the sum of the bits in the inputs. But this many
bits are seldom needed. The fixed point package makes it a little
easier to work with the variety of formats that typically are used in
a case like this. No, the package does not figure out what you want
to do. You have to know that, but it does help hide some of the
details.
Yes, multiply generates a wide product, and most processors with
a multiply instruction supply all the bits. But most HLLs don't
provide a way to get those bits. For scaled fixed point, you
shift as appropriate to get the needed product bits out.
Whether floating point is too big depends on your app. PipeliningSimilarly, VHDL also has a floating point package that handles
arbitrary sizes of data and exponent.
And that is synthesizable by anyone?
I haven't looked at the floating point package, but if it is described
in terms of basic operators in VHDL it should be synthesizable in
every tool. That is the point of overloading. You can define a
multiply operator for real data in terms of the basic building blocks
and this is now a part of the language. VHDL is extensible that way.
Again, does it synthesize pipelined arithmetic units? If not, then
they aren't much use to anything I would work on. If I do it in
an FPGA that is because normal processors aren't fast enough.
But the big problem with floating point is that it takes too much logic.
The barrel shifter for pre/post normalization for an adder is huge.
(The actual addition, not so huge.)
Nope, the fixed point package does not design pipelines, it isn't a
pipeline package. Yup, the barrel shifter is as large as a
multiplier. So what is your point? The purpose of the package is to
allow you to design floating point arithmetic without designing all
the details of the logic. It isn't going to reduce the size of the
logic.
The point I didn't make very well was that floating point is still
not very usable in FPGA designs, as it is still too big. If a
design can be pipelined, then it has a chance to be fast enough
to be useful.
Scientific programming is not the only app for FPGAs and fixed orHistorically, FPGA based hardware to accelerate scientific
programming has not done very well in the marketplace. People
keep trying, though, and I would like to see someone succeed.
-- glen
Mark,Nope. SV synthesis is quite powerful. Arrays, and structs are first class
citizens in SV and can be members of ports. Further most tools handle
interfaces now pretty well in synthesis. There's quite a benefit to using
these in your RTL.
Trying to resist making this a language war, but I see little advantage
one or the other with regard to a "higher level of abstraction". You can
probably achieve the same with either language.
--Mark- Hide quoted text -
- Show quoted text -
I've used Mentor Precision (for FPGAs), and am currently eval'ing Synplify.On Feb 1, 11:38 am, gtw...@sonic.net (Mark Curry) wrote:
Nope. SV synthesis is quite powerful. Arrays, and structs are first class
citizens in SV and can be members of ports. Further most tools handle
interfaces now pretty well in synthesis. There's quite a benefit to using
these in your RTL.
Trying to resist making this a language war, but I see little advantage
one or the other with regard to a "higher level of abstraction". You can
probably achieve the same with either language.
--Mark- Hide quoted text -
- Show quoted text -
Mark,
Sounds like SV synthesis has improved quite a bit, which is good to
know, and good for the industry. Which tools support these features (I
assume at least Synplify)? As soon as someone standardizes a library
to do fixed point in SV, then it will be able to do what VHDL does