
現在Z8085のCPUを設計しており、テンポラリレジスタにラッチする部分でなかなか上手くいきませんので質問させていただきます。
always文を使用したステートマシンにより制御しようとしているのですが次のようなWarningが出ます。
Warning: Latch IR[0]$latch has unsafe behavior
Warning: Latch IR[1]$latch has unsafe behavior
:
Warning: Latch IR[7]$latch has unsafe behavior
Warning: Latch TMP1[0]$latch has unsafe behavior
Warning: Latch TMP1[1]$latch has unsafe behavior
:
Warning: Latch TMP1[7]$latch has unsafe behavior
Warning: Latch TMP2[0]$latch has unsafe behavior
Warning: Latch TMP2[1]$latch has unsafe behavior
:
Warning: Latch TMP2[7]$latch has unsafe behavior
Warning: Latch NEXT_STATE[0]$latch has unsafe behavior
Warning: Latch NEXT_STATE[1]$latch has unsafe behavior
<ソース>
module CPU_TMP( CLK, nRST, FROM_DCD, IR, TMP1, TMP2, STATE, NEXT_STATE );
input CLK;//クロック
input nRST;//リセット
input [7:0] FROM_DCD;//入力命令
output [7:0] IR;//命令レジスタ
output [7:0] TMP1;//テンポラリレジスタ1
output [7:0] TMP2;//テンポラリレジスタ2
output [1:0] STATE;//現在のステート
output [1:0] NEXT_STATE;//次のステート
reg [7:0] IR;
reg [7:0] TMP1;
reg [7:0] TMP2;
reg [1:0] STATE;
reg [1:0] NEXT_STATE;
//状態
parameter S0 = 2'b00;
parameter S1 = 2'b01;
parameter S2 = 2'b10;
parameter SD = 2'b11;
//命令
parameter INRA = 8'h11;
parameter MVIA = 8'h22;
parameter JMP = 8'h33;
always @( posedge CLK )
begin
if( nRST == 0 )
STATE <= SD;
else
STATE <= NEXT_STATE;
end
always @( STATE )
begin
case( STATE )
SD : begin
IR <= 0;
TMP1 <= 0;
TMP2 <= 0;
NEXT_STATE <= S0;
end
S0 : begin
IR <= FROM_DCD;
case( FROM_DCD )
INRA: NEXT_STATE <= S0;
MVIA: NEXT_STATE <= S1;
JMP: NEXT_STATE <= S2;
endcase
end
S1 : begin
TMP1 <= FROM_DCD;
NEXT_STATE <= S0;
end
S2 : begin
TMP2 <= FROM_DCD;
NEXT_STATE <= S0;
end
endcase
end
endmodule
どのようにしたらこのWarningを消すことができるでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# int tff(int clk) { static int state = 0; //状態 stat 1 2022/07/11 21:14
- その他(プログラミング・Web制作) gymのカートポールプログラム 1 2022/05/01 13:02
- その他(プログラミング・Web制作) micropython コードについて 2 2023/06/14 13:13
- Java Javaで、インターフェースがクラスを複数格納することはありますか? 2 2022/06/14 08:37
- 英語 添削をお願いします。 We are going to introduce Keene State C 5 2022/05/18 00:44
- 英語 STATE COMPLIANCE N/A の意味を教えてください。 3 2023/04/21 21:03
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) vba 重複データ合算 5 2023/07/05 18:55
- 英語 私の車は、購入してから7年目になるが、これまでに車検を3回受けた。の英訳 11 2022/06/13 03:39
- その他(プログラミング・Web制作) micropythonコード 修正 1 2023/06/13 17:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
変数に「.」が含まれる場合...
-
ユーザーフォームへのデータ入...
-
エクセルVBAでテキストボッ...
-
Matlabでsin波を使って矩形波を...
-
VBA public変数はどのようなこ...
-
二点の座標から距離や角度を求...
-
String型の値にスラッシュをつ...
-
【VB6.0】 あるフォームから他...
-
C#のループでtextboxに値を入れ...
-
アクセスできない保護レベルエ...
-
2次元配列のデータをファイルへ...
-
VB.NETでのイベントの途中終了
-
Fillの使い方について
-
ループを使ってテキストボック...
-
SavePictureで保存できない
-
xmlの値を配列変数に格納し...
-
他のフォームから別のフォーム...
-
時間の計算
-
Access ○or△文の書き方
-
【VB.NET】テキストボックスに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
レコードセットにnullの場合
-
タイムアウトする仕組みを作りたい
-
subsequentとnextの違いってな...
-
C言語のプログラムで...
-
vbsのmsgboxランダム表示について
-
verilogのcase文
-
エクセルvba 値渡しのsu...
-
日付の重複
-
[至急]Project Euler:#21Amicab...
-
リスト間のアイテム移動について
-
変数に「.」が含まれる場合...
-
delphi
-
パスカル言語
-
Verilogの文法
-
Why is 77+33 not equal to 100?
-
Verilog-HDLによる設計において
-
pascalでの二分探索(バイナリ...
-
「for next」文と「if then els...
-
Scilabの&と&&に関する質問です
-
VBAでWorkbook_BeforeSaveイベ...
おすすめ情報