[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 メーリングリストの案内