「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ
CALENDAR
2008年8月
日
月
火
水
木
金
土
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
前月
翌月
Entry Archive
2024年11月
2024年10月
2024年09月
2024年08月
2024年07月
2024年06月
2024年05月
2024年04月
2024年03月
2024年02月
2024年01月
2023年12月
2023年11月
2023年10月
2023年09月
2023年08月
2023年07月
2023年06月
2023年05月
2023年04月
2023年03月
2023年02月
2023年01月
2022年12月
2022年11月
2022年10月
2022年09月
2022年08月
2022年07月
2022年06月
2022年05月
2022年04月
2022年03月
2022年02月
2022年01月
2021年12月
2021年11月
2021年10月
2021年09月
2021年08月
2021年07月
2021年06月
2021年05月
2021年04月
2021年03月
2021年02月
2021年01月
2020年12月
2020年11月
2020年10月
2020年09月
2020年08月
2020年07月
2020年06月
2020年05月
2020年04月
2020年03月
2020年02月
2020年01月
2019年12月
2019年11月
2019年10月
2019年09月
2019年08月
2019年07月
2019年06月
2019年05月
2019年04月
2019年03月
2019年02月
2019年01月
2018年12月
2018年11月
2018年10月
2018年09月
2018年08月
2018年07月
2018年06月
2018年05月
2018年04月
2018年03月
2018年02月
2018年01月
2017年12月
2017年11月
2017年10月
2017年09月
2017年08月
2017年07月
2017年06月
2017年05月
2017年04月
2017年03月
2017年02月
2017年01月
2016年12月
2016年11月
2016年10月
2016年09月
2016年08月
2016年07月
2016年06月
2016年05月
2016年04月
2016年03月
2016年02月
2016年01月
2015年12月
2015年11月
2015年10月
2015年09月
2015年08月
2015年07月
2015年06月
2015年05月
2015年04月
2015年03月
2015年02月
2015年01月
2014年12月
2014年11月
2014年10月
2014年09月
2014年08月
2014年07月
2014年06月
2014年05月
2014年04月
2014年03月
2014年02月
2014年01月
2013年12月
2013年11月
2013年10月
2013年09月
2013年08月
2013年07月
2013年06月
2013年05月
2013年04月
2013年03月
2013年02月
2013年01月
2012年12月
2012年11月
2012年10月
2012年09月
2012年08月
2012年07月
2012年06月
2012年05月
2012年04月
2012年03月
2012年02月
2012年01月
2011年12月
2011年11月
2011年10月
2011年09月
2011年08月
2011年07月
2011年06月
2011年05月
2011年04月
2011年03月
2011年02月
2011年01月
2010年12月
2010年11月
2010年10月
2010年09月
2010年08月
2010年07月
2010年06月
2010年05月
2010年04月
2010年03月
2010年02月
2010年01月
2009年12月
2009年11月
2009年10月
2009年09月
2009年08月
2009年07月
2009年06月
2009年05月
2009年04月
2009年03月
2009年02月
2009年01月
2008年12月
2008年11月
2008年10月
2008年09月
2008年08月
2008年07月
2008年06月
2008年05月
2008年04月
2008年03月
2008年02月
2008年01月
2007年12月
2007年11月
Recent Entry
こないだのロボット
ロボット行ってきた
こないだのくれじークライマー全国大会2024予選
マウス修理した
訃報
ミカド行ってきた
LANケーブル交換した
MFT2024行ってきた
こないだのロボット
ロボット行ってきた
Recent Comment
nekosan/
JYRUSSやってきたメモ
フルタニアン/
JYRUSSやってきたメモ
nekosan/
JYRUSSやってきたメモ
フルタニアン/
JYRUSSやってきたメモ
nekosan/
こないだのロボット
フルタニアン/
こないだのロボット
nekosan/
こないだのロボット
フルタニアン/
こないだのロボット
nekosan0/
レジ袋ホルダーを考える
フルタニアン/
レジ袋ホルダーを考える
Category
ノンジャンル
(2850)
PIC
(47)
AVR
(341)
Arduino
(446)
Raspberry Pi
(193)
mbed
(41)
ARM
(30)
ESP32
(15)
Android
(10)
OPアンプ
(125)
VHDL
(57)
PSoC
(4)
アナログ回路
(110)
クルマ
(127)
rails
(51)
本
(42)
導電塗料
(3)
Fritzing
(41)
Edison
(2)
FFT
(34)
写真
(158)
MIDI
(24)
その他日記
(11)
Python
(57)
3Dプリンタ
(124)
Bookmark
最初はgoo
goo blogトップ
スタッフブログ
My Profile
ブログID
nekosan0
自己紹介
Search
このブログ内で
ウェブ全て
カウンタ回路について調べていました。
VHDL
/
2008年08月09日
せっかくトラ技2006年4月号付録のMAXⅡ登載
CPLDテストボードを組み立てたので、いろいろ
実験してみたいと思って、特にオシロの入力用回路を
どう作ればいいかに関することを考えています。
特に今、知識が至らなくて困っていたのはカウンタ回路
のこと。
カウンタについて私の頭の中にあるのは、以前使った
汎用ロジックICの74HC4040みたいな
D-FFを使う順々に桁上げをしていくような構成の
カウンタ回路。(詳しくは東芝のDATASHEETなどご参照)
以前シバ某さんから教えていただいた、「1ビットずつ
遅延が累積していくので、74HC4040の最上位
ビットは全ビットの遅延を合計した値になるよ」という
お話がずっと心に引っかかっていて…。
そういう一般的なカウンタ回路の構成だと、桁数が
増えればどうしても遅延時間が累積していってしまう
のでクロック数をあげちゃうと各出力ピンの内容が
揃わず、メチャメチャになってしまいます。
(ドミノ倒しのように、1ビット1ビット順々に
更新されていく時間が必要になる)
というわけで、まずはどの位のクロック数にすると
どの程度の遅延が生じるのかを確かめるために、適当に
カウンタ回路のVHDLを組んでみて、シミュレーターで
遅延時間を確かめてみました。
出てきた結果は…ん?13n秒???それっぽっち?
本当???信じられん… これって、1回路分だけ
じゃないの???
「うーーーーん、良く解らん」。ということで調査開始!
カウンタ回路に付いて片っ端から調べまくって見ることに。
なかなかしっくり来るような情報が得られない中、
延々と探していて見つかったキーワードが
「非同期式カウンター」と「同期式カウンター」
って、なに?
調べてみると、74HC4040みたいなカウンター
のことを非同期式といって、ビット数が増えると
出力タイミングがバラバラになっちゃうやつ。
それとは別に「同期式カウンター」というのがある
らしいということが判りました。
というわけで、さらに同期式カウンターについて調査を。
良くわかる解説が載っていたのが、信州大学工学部
井澤研究室の「教科書用」として公開されていた
情報でした。↓これ。
http://laputa.cs.shinshu-u.ac.jp/~yizawa/logic2/chap5/index.html
(とても勉強になりました。ありがとうございます!)
JK-FF???聞いたことあるなぁ。あれだ。
EK-JAPANの「よくわかるディジタル回路の基礎の知識」
に載ってたあれだ。D-FFやT-FFは記憶にあるけど、
JK-FFって、なんだっけ?
…本棚から取り出して、読み直して見ました。じーーーーっくり
読んで、ようやく解りました!なるほどね!
全桁分のJK-FFにクロック信号を引き込んで、
クロックの変化をトリガに一気に全桁を更新する仕組み。
なるほど。こういう動作をするカウンタなのか!!!
そうだよねぇ。順々に桁上げしていかなくたって、
クロックで同期して、全桁一度にカウントアップ
することって、やっぱり出来るんだよね!
なんとなく出来そうな気はしていたんだけど、実際に
回路を(動画で)見せていただくと、頭の中にスッと
入ってきました。感謝、感謝!
なんとなく私の頭の中で想像していたよりもシンプルな
回路構成。JK-FFを使うところがミソなのねぇ。
そうすると、すべての桁がほぼ同じ時間内(多分数n秒程度)
でカウントアップされるというわけだから、シミュレーター
の実行結果はまさにそういうことか???
そういえば、コンパイル結果のリポートを読んでたら、
内部ピンのファンアウトのことが書いてあったなぁ。
グローバルクロック端子(gclk2)から入力された
信号が、内部で幾つくらいの入力回路に繋がっているのか
という話。CPLDの内部回路でも、ファンアウトって
考慮が必要なのねぇ…。
リポートによると、gclk2のファンアウトは20。
カウンタのビット数は20にしておいたから、
それらすべてに引き込まれていると仮定すると、gclk2
のファンアウトは20になるはず。
うーん、なるほど。まさにビンゴでした。
とすると、VHDLで適当に書いたビット列は、
内部では同期式カウンタとして実現されているわけなのね!
うん。よーーーーーーーく解った!!! よし。
さて、ここで終らないのが私の凝り性なところ。
同期式カウンターの弱点って、何?って話。
同期式カウンターの弱点は、各ビットに入力される
クロック信号の品質の話だそうです。
どういうことかというと…
文章で書くのは難しいんですが、大雑把に言うと
各JK-FFに入力されるクロックの立ち上がり
タイミングがマチマチになってしまうと、カウンタ
としての品質が保証されないということ。
場合によっては、途中のビットが突然化けてしまい、
カウンタの値にべらぼうな誤差が生じる恐れも…
クロック信号の品質っていうと、クロック出力回路側の
ファンアウト能力にも因るだろうし、JK-FF側の
入力端子の感度にも因るだろうし、なかなかシビアだなぁ。
ディスクリートできちんとした品質の同期式回路を
組むとしたら、かなり苦労しそう…
まぁ、CPLD内部ではよきにはからっている
でしょうから心配の必要はないだろうと思いますが。
いずれにしても、当初の目的である「速いカウンタ」
についてその仕組みと実現方法が解ったので、これでまた
一歩前進と言った感じ。
ちなみに、最も遅い端子で13n秒程度だったので、
安全を取って20n秒と考えても、50MHz程度
ならなんとか追従しそうな予感。
まぁ、あまり欲張らずにまずは20MHz程度の実現を
頑張ろう!
それにしても、CPLDのタイミングについて、
これまで以上に身近に理解が出来た一件でした。
コメント (
0
)
goo ブログ
ブログの作成・編集
gooおすすめリンク
おすすめブログ
【コメント募集中】スタッフの気になったニュース
@goo_blog
【お知らせ】
ブログを読むだけ。毎月の訪問日数に応じてポイント進呈
【コメント募集中】goo blogスタッフの気になったニュース
gooブロガーの今日のひとこと
訪問者数に応じてdポイント最大1,000pt当たる!