R
Rob Gaddi
Oh good, a topic to start a flame war with...
So I consider myself pretty comfortable with VHDL. I use it for my
synthesizable designs. I use it for my testbenches. Occasionally I'll
write a VHDL behavioral model and run it through my simulator just to
generate timing diagram waveforms for people.
I can, given sufficient time and energy, muddle through reading Verilog.
Never written a line of it. But I'm getting a vague sense, possibly
out of frustration, that a whole lot of verification benches, especially
as you're trying to get up into transaction level bus models, get easier
in SystemVerilog than they are doing it in VHDL, even with the 2008
improvements.
I'm pretty used to doing OOP in languages like Python, C++, and Perl,
and the idea of calling bus_master.write(address, data); seems like a
pretty natural way of stringing a bench together. The options for doing
similar in VHDL (procedures with a billion signal parameters or entities
with abstract req/ack ports and 'transaction signaling) seem,
comparatively, pretty crude. I've made them work time and again, but I
can't say I've ever sat back and read it back over and said "You know,
that's pretty elegant."
I have no intention of giving up VHDL for my synthesizables; I cling to
strong typing like Linus to his blanket. But am I doing myself a
disservice by not learning SV?
So I consider myself pretty comfortable with VHDL. I use it for my
synthesizable designs. I use it for my testbenches. Occasionally I'll
write a VHDL behavioral model and run it through my simulator just to
generate timing diagram waveforms for people.
I can, given sufficient time and energy, muddle through reading Verilog.
Never written a line of it. But I'm getting a vague sense, possibly
out of frustration, that a whole lot of verification benches, especially
as you're trying to get up into transaction level bus models, get easier
in SystemVerilog than they are doing it in VHDL, even with the 2008
improvements.
I'm pretty used to doing OOP in languages like Python, C++, and Perl,
and the idea of calling bus_master.write(address, data); seems like a
pretty natural way of stringing a bench together. The options for doing
similar in VHDL (procedures with a billion signal parameters or entities
with abstract req/ack ports and 'transaction signaling) seem,
comparatively, pretty crude. I've made them work time and again, but I
can't say I've ever sat back and read it back over and said "You know,
that's pretty elegant."
I have no intention of giving up VHDL for my synthesizables; I cling to
strong typing like Linus to his blanket. But am I doing myself a
disservice by not learning SV?