C,
pasted
on Apr 26:
|
/*******************************************
クロック動作関係モジュール
======================
分周を計算し、1秒間を求め1秒ごとに1をカウントし
対応する7SEQに値を加算する。 ダイナミックドライブ使用
********************************************/
`ifdef DEFAULT_NETTYPE_NONE
`default_nettype none
`endif
module CLK_Timing(CLK,SEQ_POINT,S1,S2,S3,S4);
//入力
input wire CLK;
//出力
output[3:0] S1,S3; //7SEQの値を出力
output[2:0] S2,S4; //7SEQの値を出力
output[1:0] SEQ_POINT;//7SEQのポイントを出力
wire SCAN_ON; //待機時間が経過したので、ダイナミックドライブ動作
//変数宣言
reg [15:0] CLK_SEC; //クロック待機時間カウンター
reg [7:0] SCAN_SEQ; //7SEQ切り替え待機時間
reg [6:0] CLK_ON; //待機時間が経過したので、動作(100回)
//戻り値
reg [3:0] S1,S3; //7SEQ 0-9
reg [2:0] S2,S4; //7SEQ 0-5
reg [1:0] SEQ_POINT; //ダイナミックドライブポイント
assign SCAN_ON = (SCAN_SEQ ==(8'hff))? 1'b1 : 1'b0; //255回カウントしたらON
/************************************
7SEQ待機時間カウント処理
************************************/
always @(posedge CLK)
begin
SCAN_SEQ <= SCAN_SEQ + 1; //7SEQスキャン待機時間カウント
end
/************************************
分周処理:6Mカウント@1秒間算出ループ
*************************************/
always @(posedge CLK)
begin
//CLK_SECが6万回(60K)カウントされたら
if(CLK_SEC >= 60000)
CLK_SEC <= 0; //再度0からループ
else if(CLK_ON == 100)
CLK_SEC <= 0; //待機時間初期化
else
CLK_SEC <= CLK_SEC + 1; //1秒間待機カウント
end
/******************************
1秒間検出処理
*******************************/
always @(posedge CLK)begin
//CLK_SECが6万回(60K)カウントされたら
if(CLK_SEC >= 60000)
CLK_ON <= CLK_ON + 1; //周回カウント
//100回周回した場合、1秒経過 (60K*100=6M=1秒)
else if(CLK_ON == 100)
CLK_ON <= 0; //周回回数初期化
end
/********************************
各対応する7SEQの値計算処理
*********************************/
always @(posedge CLK)
begin
//100回周回した場合、1秒経過 (60K*100=6M=1秒)
if(CLK_ON == 100)
begin
//7Seq 1番目
if(S1 == 4'b1001) //9以上か?
begin
S1 <= 4'b0000; //繰り上げ初期化
S2 <= S2 + 1;
//7Seq 2番目
if(S2 == 4'b0101) //5以上か?
begin
S2 <= 4'b0000; //繰り上げ初期化
S3 <= S3 + 1;
//7Seq 3番目
if(S3 == 4'b1001) //9以上か?
begin
S3 <= 4'b0000;
S4 <= S4+ 1;
//7Seq 4番目
if(S4 == 4'b0101) //5以上か?
S4 <= 4'b0000;
else S4 <= S4 + 1; //S4加算
end else S3 <= S3 + 1; //S3加算
end else S2 <= S2 + 1; //S2加算
end else S1 <= S1 + 1; //S1加算
end
end
/*********************************
7SEQのダイナミックドライブ処理@7SEQ間ハイインピーダンス移動
**********************************/
always @(posedge CLK)
begin
//7Seqを移動、ダイナミックドライブ
if (SCAN_ON == 1'b1)
SEQ_POINT <= SEQ_POINT + 2'b1; //SEQ_POINTを加算し、移動
end
endmodule
`default_nettype wire
|
Output:
|
Line 7: error: stray '`' in program
Line 7: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'DEFAULT_NETTYPE_NONE'
Line 8: error: stray '`' in program
Line 9: error: stray '`' in program
Line 13: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'wire'
Line 16: error: expected ']' before ':' token
Line 17: error: expected ']' before ':' token
Line 18: error: expected ']' before ':' token
Line 20: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'SCAN_ON'
Line 23: error: expected ']' before ':' token
Line 24: error: expected ']' before ':' token
Line 25: error: expected ']' before ':' token
Line 28: error: expected ']' before ':' token
Line 29: error: expected ']' before ':' token
Line 30: error: expected ']' before ':' token
Line 32: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'SCAN_ON'
Line 31: warning: character constant too long for its type
Line 32: error: missing terminating ' character
Line 37: error: stray '@' in program
Line 45: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'always'
Line 45: error: stray '@' in program
Line 50: error: expected identifier or '(' before 'else'
Line 52: error: expected identifier or '(' before 'else'
Line 59: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'always'
Line 59: error: stray '@' in program
Line 64: error: expected identifier or '(' before 'else'
Line 71: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'always'
Line 71: error: stray '@' in program
Line 77: error: missing terminating ' character
Line 79: error: missing terminating ' character
Line 83: error: expected identifier or '(' before 'if'
Line 83: error: missing terminating ' character
Line 85: error: missing terminating ' character
Line 89: error: expected identifier or '(' before 'if'
Line 89: error: missing terminating ' character
Line 91: error: missing terminating ' character
Line 95: error: expected identifier or '(' before 'if'
Line 95: error: missing terminating ' character
Line 96: error: missing terminating ' character
Line 98: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'else'
Line 99: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'else'
Line 100: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'else'
Line 102: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'end'
Line 107: error: stray '@' in program
Line 110: error: missing terminating ' character
Line 111: error: missing terminating ' character
Line 116: error: stray '`' in program
|
|