[Armadillo:07491] Re: Armadillo-9 の割り込みのフリップフロップ

Yasuhisa Nakamura email@hidden
2011年 8月 29日 (月) 20:32:42 JST


中村です。

[Armadillo:07490]で、2011年 8月 29日(月)16:36 に matsui さんは書きました:

>> 図と表では、
>> - ISRはD-FF、
>> - D入力にIMRを通ったIRQx、
>> - CLKは"from CPU"の"rise edge"
>> となっています。
>>
>> これでは、波塚さんの説明
>> ・IRQx入力の(立ち上がり)エッジ検出と保持
>> にはならないのではないでしょうか?
>
> ご指摘いただきましたとおり図6.1ではエッジ検出とは見えませんね。
>
> 図6.1のFFは、実際にはステートマシンが組まれており、クロック幅よりレベル
> 検出およびエッジ検出と保持が可能になっております。

ステートマシンのクロック幅(周波数)はどのくらいでしょうか?


> FFのイメージとしては、D-FFではなく、同期型のRS-FFが適切と思いますが、
> このあたりが適切な表現となるように検討いたします。

よろしくお願いいたします。


>> また、波塚さんの説明のもう1点、
>> ・IMRが"1"の場合に、割り込み入力のマスクと同時にISRの値をクリアする
>> が、図にも本文にも記載がありません。
>
> 次の箇所がご指摘いただいた内容を説明箇所となります。
>
> ”マスクビットが ”1”の場合割り込み入力がマスクされ、次段のFF には"0"が入
> 力されます。”(Page-36)
>
> 図6.1に示されているように、IRQxはマスクビットの反転と共にANDゲートに入力
> されていますので、”マスクビットが ”1”の場合にはAND出力が"0"になり、次段
> のFFには"0"が入力されますので、ISRの値がクリアされます。

このANDゲートは以前の図にはなく今回の修正で追加された
ものですが、これはIMRによってISRがクリアされるということを
説明するためのものではなく、「IMRがISRの入力をマスクする」と
いう働きを分かりやすい図にしたもの、だと思っています。

前半にあるように、ISRは入力の立ち上がりエッジの保持ですよね?
入力が"1"から"0"になってISRがクリアされてしまったのでは、
その役目を果たせないと思うのですが・・・
IMRのビットを二股に分けて、一方はANDゲートで入力をマスクし、
もう一方をCLRxとORしてISRのクリアへつなぐのではないでしょうか?

そもそもこの部分の元の質問は、「IMRでISR入力をマスクしたら
そのタイミングでISRがクリアされてしまっているようだ。
どこかおかしいのでは?」、というものでした(だったと思います)。

-- 
なかむら





armadillo メーリングリストの案内