ハードウェアの場合
• VerilogHDL、VHDL
• 全部が同時に起きる
•でも微妙な伝播時間も暗黙の了解で頭に入ってる
• ↓上から順ではなく全部同時に発生する
always @(posedge clk or posedge reset) begin
if (reset) begin
mem[addr] <= 0;
q <= 0;
end
else begin
mem[addr] <= d;
q <= mem[addr];
end
end
簡単なメモリデバイスの例
2017/08/12 FuraIT #33発表資料
新人時代に悩んだこと(ハードウェア)
• どうがんばっても上から処理するように読んでしまう
• プログラミングの経験が頭から離れない
•入門書が存在しない(当時は)
• 趣味でFPGAのロジック設計するなんてまずない
• 資料も基本的にプロ向けに書かれている
• 先輩たちが不親切だったとかは別な話としてある…
always @(posedge clk or posedge reset) begin
if (reset) begin
mem[addr] <= 0;
q <= 0;
end
else begin
mem[addr] <= d;
q <= mem[addr];
end
end
always @(posedge clk or posedge reset) begin
if (reset) begin
result[addr] <= 0;
end
else begin
result[addr] <= q + data;
end
end
全部同時に発生する
んだけど、上から順に
考えてしまう。
2017/08/12 FuraIT #33発表資料