2012-05-03 16 views
0

私はVHDLの初心者です。私はログイン端末が必要です。たとえば、私は7010のパスワードを固定しています。私はautomatのfuncionalityだけを実装する必要があります。私は1つの信号を定義したいと思っています。それはキーの押下回数を保持し、毎回増分されます。VHDLログイン端末

しかし、私はシグナルを初期化する方法を知っていません。なぜなら、あるプロセスでシグナルを初期化するとき、他のプロセスでその値を増やすことができないからです。私はその信号をintializeしていない場合は、私のコードが動作しないと私は理由を知っていない。たとえば、doSomethingは "0000"にその信号を送らないと実行されません。しかし、私はdoSomethingでその価値を考え出す必要があります...私の悪い英語のためにうそをつく。

if(mySignal = "0000") 
    doSomething 

答えて

1

あなたがしようとしていることは、クラス割り当てのように聞こえます。

問題を解決してください。

あなたはsynthisisable VHDLで

あなたは信号が高Zすることができない限り、複数のドライバが許可されていない、と言って正しいです何をしたいのブロック図を描きます。
しかし、信号のコピーを取り、それを別のプロセスで使用するのを止めるものは何もありません。

カウンタまたは大きさを有する任意の信号のための符号なしの型を利用する、それが

doSomething:process(clk,mySignal 
begin 
    if rising_Edge(clk) then 
     if mySignal = "0000" then 
      count<=count+1; 
     end if; 
    end if; 
end process; 
人生がずっと容易になります