Verilog HDLの勉強の続きで
入門Verilog HDL記述(CQ出版社)を読んでいる。
これも読みやすいいい本だと思う。
感心したのが、リダクション演算子。各ビットごとの論理演算が1発で出来る。
reg [31:0] data;
assign parity = ^data;これで出来るそうである。
assign parity = data[31] ^ data[30] ^ ........ ^ data[0];と同様。
VHDLでは、function文でも出来るが、process文で書くと
process (data)
variable temp : std_logic_vector(31 downto 0);
begin
for i in 0 to 31 loop
if i=0 then
temp(0) := data(0);
else
temp(i) := data(i) xor temp(i-1);
end if;
end loop;
parity <= temp(31);
end process;と書いていた。(間違っていないかしら、即席で書いたから)
VHDLでも知らないだけであるのかもしれないが、Verilogのリダクション演算子便利である。
Verilog-HDLの現在の印象は、
1.型がルーズなので便利な反面、エラーがわかりづらいかもしれない。
2.VHDLのrecord型に相当するものが無いので、構造体が書けない。
3.累乗やLOGなどが無いようだ。
4.generate文が無い。
5.多元配列が使えないようだ。
全体的には、型が甘いカーニハン&リッチー時代のC言語のような印象だ。
4.5.はVerilog2001で使えるようになっているし、XSTも対応しているので、積極的にVerilog2001を使いたい。
まだ、半分くらいしか読んでないので、残りを読もう。納得できない記述もあるので、デルタ時間を考えながらシミュレートしてみたい。
そろそろ技術論文も書き始めなくてはいけないので、忙しそう。ポスター発表する予定なので、3月に、近くに住んでいる方で御用とお急ぎで無い方はいらしてください。後でアナウスします。
- 2005年11月23日 21:29 |
- 入門Verilog
-
| トラックバック:0
-
| コメント:0