前田/日誌/2008-06-30
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[前田/日誌]]
-今日やったこと
--コンピュータアーキテクチャ論のスライドを読んだ
--ステートマシンについて色々考えてみた
-英語
--英単語
---enthrall : &color(white){魅了する};
---jargon : &color(white){(専門)用語};
---impinge : &color(white){突き当たる};
---exhaustion : &color(white){消耗する};
---construe : &color(white){解釈する};
---considerate : &color(white){慎重な};
---distill : &color(white){蒸留する};
---confer : &color(white){授与する};
--英会話
---ドライブに行かないか?~
&color(white){Why don't we go for a drive?};
---だめだよ、そんな気分じゃないんだ~
&color(white){No, I'm really not in the mood.};
---他のフライトはないのですか?~
&color(white){Are there any other flights?};
---パスポートをなくさないように注意しなさい。~
&color(white){Be careful not to lose your passport.};
---もっと具体的に言ってもらえませんか?~
&color(white){Can you be more specific?};
---自分の間違いに気がついたようだね~
&color(white){You seem to have realized that you are wrong.};
---ほんとうに家を売るの?~
&color(white){Are you selling your house?};
---まだわからないけど、場合によってはね~
&color(white){I don't know yet. It all depends.};
-メモ
--Verilogにおけるメモリの宣言についての注意事項
---reg [31:0] mem[0:65535]; //(1)~
reg [31:0] mem[65535:0]; //(2)~
上記二つでは$readmemh等を用いてメモリデータをシーケンシャルリードした場合、~
Cadence社のVerilog-XLでは同一の昇順代入だが、他社製品では挙動が異なる可能性がある~
(具体的に(1)では昇順代入、(2)では降順代入が行われる処理系が存在する)~
--コンピュータ用語メモ
---ユークリッド距離(Euclidean Distace)
---マンハッタン距離(Manhattan Distance)
---ハミング距離(Hamming Distance)
---レーベンシュタイン距離(Levenshtein Distance)
---整列化規約(alignment restriction)~
例 : MIPSではワードアドレスは4の倍数でなければならない
--ステートマシンの書き方サンプル~
module hoge(CLK, nRESET, IN, OUT1, OUT2);
input CLK;
input RESET;
input IN;
output OUT1;
output OUT2;
reg OUT1;
reg [1:0] reg_state;
always @(posedge CLK or negedge nRESET) begin
if (!nRESET) begin // 非同期リセット(Lレベル)
OUT2 <= 0;
end else begin
case(reg_state)
4'b00: begin
reg_state <= 4'b01;
end;
4'b01: begin
reg_state <= 4'b11;
OUT1 <= 1'b1; // (*1) レジスタから直接出力している
end;
4'b11: begin
reg_state <= 4'b10;
end;
4'b10: begin
reg_state <= 4'b00;
end;
default: begin // デフォルトを付けとく。or full case
reg_state <= 4'b00;
end;
endcase
end
end
assign OUT2 = reg_state[0] & OUT1;
// (*2) レジスタの出力の後ろに組み合わせ論理を通して出力している
assign OUT3 = OUT1 & IN;
// (*3) 入力がレジスタを通らず、組み合わせ論理を通って出力
endmodule
出典:http://park11.wakwak.com/~nkon/diy/verilog/memo.html#moore
--以下、自分なりの理解(詳しい人がいたら教えて欲しいです)~
--ムーア型 : 出力信号が状態によって決定される~
モジュールの出力がレジスタの出力なので出力遅延が最小。~
回路規模が比較的大きくなる。~
ハザードが出ない。
--ミーリ型 : 出力信号が状態及び入力信号によって決定される~
入力に対してクロック遅延無く出力が可能。~
ハザードが出る可能性あり。~
回路規模が大きくなる。
---ワンホット方式 : 1状態に対して1レジスタを使用。~
動作スピードは高速。ただし、用途や状況によってはハザードが出るので対策回路が必要。
---デコード方式 : 複数状態に対して1レジスタのみを使用。ステート数が多いと、~
そのレジスタのデコーダ部分の回路規模が大きくなり、遅延が発生する。~
--定本 ASICの論理回路設計 : http://www.cqpub.co.jp/hanbai/books/30/30441.htm
--ASICの論理回路設計法―スーパーマシンのためのディジタル・システム設計ノウハウ
--xspim関連
---テキストセグメント(メインプログラム) : 0x00400024
---データセグメント(定数) : 0x10010000
-戯言
--ステートマシンの良い参考書が見つからない。~
ワンホット方式、デコード方式とか、ムーア型、ミーリ型とか。。~
--と思ったら上のメモの出典元のページで泣けるほど知りたかった事が書いてあった。感謝。
--滅多に使ったことがなかったCRTのせいか、最近視力が下がってきてる気がする。
--今週の課プロで教科書の除算器の章を配布しなければならないのを忘れてた
----
#comment
終了行:
[[前田/日誌]]
-今日やったこと
--コンピュータアーキテクチャ論のスライドを読んだ
--ステートマシンについて色々考えてみた
-英語
--英単語
---enthrall : &color(white){魅了する};
---jargon : &color(white){(専門)用語};
---impinge : &color(white){突き当たる};
---exhaustion : &color(white){消耗する};
---construe : &color(white){解釈する};
---considerate : &color(white){慎重な};
---distill : &color(white){蒸留する};
---confer : &color(white){授与する};
--英会話
---ドライブに行かないか?~
&color(white){Why don't we go for a drive?};
---だめだよ、そんな気分じゃないんだ~
&color(white){No, I'm really not in the mood.};
---他のフライトはないのですか?~
&color(white){Are there any other flights?};
---パスポートをなくさないように注意しなさい。~
&color(white){Be careful not to lose your passport.};
---もっと具体的に言ってもらえませんか?~
&color(white){Can you be more specific?};
---自分の間違いに気がついたようだね~
&color(white){You seem to have realized that you are wrong.};
---ほんとうに家を売るの?~
&color(white){Are you selling your house?};
---まだわからないけど、場合によってはね~
&color(white){I don't know yet. It all depends.};
-メモ
--Verilogにおけるメモリの宣言についての注意事項
---reg [31:0] mem[0:65535]; //(1)~
reg [31:0] mem[65535:0]; //(2)~
上記二つでは$readmemh等を用いてメモリデータをシーケンシャルリードした場合、~
Cadence社のVerilog-XLでは同一の昇順代入だが、他社製品では挙動が異なる可能性がある~
(具体的に(1)では昇順代入、(2)では降順代入が行われる処理系が存在する)~
--コンピュータ用語メモ
---ユークリッド距離(Euclidean Distace)
---マンハッタン距離(Manhattan Distance)
---ハミング距離(Hamming Distance)
---レーベンシュタイン距離(Levenshtein Distance)
---整列化規約(alignment restriction)~
例 : MIPSではワードアドレスは4の倍数でなければならない
--ステートマシンの書き方サンプル~
module hoge(CLK, nRESET, IN, OUT1, OUT2);
input CLK;
input RESET;
input IN;
output OUT1;
output OUT2;
reg OUT1;
reg [1:0] reg_state;
always @(posedge CLK or negedge nRESET) begin
if (!nRESET) begin // 非同期リセット(Lレベル)
OUT2 <= 0;
end else begin
case(reg_state)
4'b00: begin
reg_state <= 4'b01;
end;
4'b01: begin
reg_state <= 4'b11;
OUT1 <= 1'b1; // (*1) レジスタから直接出力している
end;
4'b11: begin
reg_state <= 4'b10;
end;
4'b10: begin
reg_state <= 4'b00;
end;
default: begin // デフォルトを付けとく。or full case
reg_state <= 4'b00;
end;
endcase
end
end
assign OUT2 = reg_state[0] & OUT1;
// (*2) レジスタの出力の後ろに組み合わせ論理を通して出力している
assign OUT3 = OUT1 & IN;
// (*3) 入力がレジスタを通らず、組み合わせ論理を通って出力
endmodule
出典:http://park11.wakwak.com/~nkon/diy/verilog/memo.html#moore
--以下、自分なりの理解(詳しい人がいたら教えて欲しいです)~
--ムーア型 : 出力信号が状態によって決定される~
モジュールの出力がレジスタの出力なので出力遅延が最小。~
回路規模が比較的大きくなる。~
ハザードが出ない。
--ミーリ型 : 出力信号が状態及び入力信号によって決定される~
入力に対してクロック遅延無く出力が可能。~
ハザードが出る可能性あり。~
回路規模が大きくなる。
---ワンホット方式 : 1状態に対して1レジスタを使用。~
動作スピードは高速。ただし、用途や状況によってはハザードが出るので対策回路が必要。
---デコード方式 : 複数状態に対して1レジスタのみを使用。ステート数が多いと、~
そのレジスタのデコーダ部分の回路規模が大きくなり、遅延が発生する。~
--定本 ASICの論理回路設計 : http://www.cqpub.co.jp/hanbai/books/30/30441.htm
--ASICの論理回路設計法―スーパーマシンのためのディジタル・システム設計ノウハウ
--xspim関連
---テキストセグメント(メインプログラム) : 0x00400024
---データセグメント(定数) : 0x10010000
-戯言
--ステートマシンの良い参考書が見つからない。~
ワンホット方式、デコード方式とか、ムーア型、ミーリ型とか。。~
--と思ったら上のメモの出典元のページで泣けるほど知りたかった事が書いてあった。感謝。
--滅多に使ったことがなかったCRTのせいか、最近視力が下がってきてる気がする。
--今週の課プロで教科書の除算器の章を配布しなければならないのを忘れてた
----
#comment
ページ名: