- 締切済み
CPLDでのDIVIDER機能
VHDL及びPLD設計初心者です。 入力クロック1MHzを、8bit(4×2のBCDコード)で0~99の入力信号に対し、同じく99種類の出力パルス(入力"1"で20Hz程度,入力99で2KHz程度)を生成する機能を設けたいのですが、CPLDで実現可能でしょうか。 CPLDは分周自体が不得意と聞いた事もあるような気がしますが・・・ 宜しくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
関連するQ&A
- CPLDでの分周について
入力クロック1MHzを、8bit(4×2のBCDコード)で099の入力信号に対し、同じく99種類の出力パルス(入力"1"で20Hz程度,入力99で2KHz程度)を生成する機能を設けたいのですが、CPLDで実現可能でしょうか。 CPLDは分周自体が不得意と聞いた事もあるような気がしますが・・・ 宜しくお願いします。
- 締切済み
- 電子部品・基板部品
- 4MHzから1Hzへのカウンタを用いた分周について
4bitカウンタを従列接続することによって、4MHzの水晶発振器の出力を1Hzまで分周する回路をつくれ という問題がありますが、実現方法がわかりません。 4×10^6個のパルスを分周することになると思いますが、4bitカウンタでは2^16ごと周波数が落ちていくので、1Hzきっちりにはならない気がします。 何か勘違いをしていますでしょうか? よろしくお願いします。
- ベストアンサー
- その他(学問・教育)
- CPLDはクロックを入れなくても使える?
ザイリンクス、アルテラ、ラティスなどのCPLDを使いたいと思っています。 一般的(?)にはCPLDにクロックを入れて、そのエッジで信号を取り込んで処理する同期回路設計をすると思います。 今回はCPLDで標準ロジックを複数入れるようなものを作ってみようと思っています。 例えば5入力ANDや、4bit-16bitデコーダのような感じのものです。 これらもクロックに同期して取り込んだ方が出力がきれいに安定するのはわかるのですが、あえてこれは良しとした場合、CPLDにはクロックを入れなくても動かすことはできるのでしょうか? ご存知の方がいらっしゃいましたらご教示お願いいたします。
- ベストアンサー
- 電気・電子工学
- 高周波パルス生成ICを探しています
色々と探してみましたが、 見つかりませんでしたので質問させていただきます。 現在大学の開発でマイコンからACサーボパックへパルスを送り 対象を制御しようとし、高周波数を出力できるICを必要としています。 具体的に 125.000KHzと、 124.958KHzのパルスを生成したいのですがこれを実現するには、 約374MHzの周波数が必要なのです。 パラレル、シリアル通信どちらでもいいのですが マイコンからの信号を受けて周波数を可変できるようなICを探しています。 信号 パルス ■⇒⇒⇒□⇒⇒⇒■ マイコン IC 制御対象 CPLDなどで組むのもいいのですが、開発費の問題で出来る限り安価な IC単品で可能になれば、と考えています。 ご教授宜しくお願いいたします。
- ベストアンサー
- その他(学問・教育)
- Xilinx ISE 分周波形シミュレーション
50MHzを分周して1MHz,1KHz,200Hzなどの信号を作るとします。 カウンタを使ってそれぞれの信号を作ったのですがきちんと分周されているのかシミュレートしたいと思います。 TestBenchWaveFormを選択し、SimulateBehavioralModelを実行し、波形を確認したのですが200Hzの信号に対し、50MHzが速すぎるので200Hzの信号の立ち上がりが確認できません。 スケール([1000][ns]とか書いてあるところ)を変えてもあまり変化がみられないのですが、200Hz信号を確認したい場合どうすればよいのでしょうか?
- 締切済み
- その他(プログラミング・開発)
- PLL(Phase locked loop)についてぜひ教えてください。
以前に「n逓倍器」について多くのアドバイスをいただき、ありがとうございました。 結局、水晶振動子で安定した周波数出力をし、PLLを使ってn倍の逓倍器を作ろうと決めました。 ICはMC14060を使おうと思っています。 このICは14ビットのバイナリカウンタで、発振器も内蔵しており、水晶振動子を接続することで、14ビットの範囲で任意に分周させて出力が出来るようです。(この時点で間違っていたらすいません。。) それで、100Hz程度の正弦波をPLLに入力させようとしているので、一般的な水晶振動子では周波数が高すぎる(数MHzを多く見かけました)ため、分周して出力させようと考えました。 水晶振動子を調べると0.032768MHzという水晶振動子を見つけたのですが、それを14ビットで分周すると・・・ 0.032768(MHz)×(1/2の14乗)=2Hzとなるので十分だと考えました。 そこで質問があるのですが、水晶振動子の出力を分周させて低めの周波数(数Hz~数KHzぐらい)で出力させようとするときは、高めの周波数(数MHz~数十MHz)の水晶振動子を値の大きなビットで分周させてつくったほうが良いのでしょうか?それとも、あらかじめ低い周波数(私が見つけた水晶振動子程度)の水晶振動子を値の小さなビットで分周させて出力させたほうが良いのでしょうか?? 「良いのでしょうか?」というのは波形が安定しているかどうか(歪みなどが無いか)という視点のみです。 また分周についてお知りの方は、14ビットでは欲しい周波数まで分周できないときは、直列に分周器をつなげる(例えば14ビット分周器を2個)ことでビット数を増やし、高い周波数の水晶振動子でも数Hzの周波数で出力させることが可能でしょうか?? 回路の初心者なのでどんなことでもアドバイスをいただければとても助かります。よろしくお願い致します。
- ベストアンサー
- 物理学
- スピードメーターのパルスについて (電子回路の分野)
スピードメーターを購入しましたが、バイク側のパルスが特殊なため正しい表示をしません。そこでパルスを合わせるため分周回路を製作しているのですが電気は苦手でうまくいきません。 バイク側のパルスですが、40パルスで(5V信号)、これをメーターが対応できる4パルスにするには単純に10分周すればよいのでしょうか? また、10分周で動作することを前提にTC4017BPとゆうICカウンタを使用して製作しているのですが、うまく分周されません。具体的には、パルスの入力(元の40パルス)をクロック(14番ピン)に接続し、10分周された出力はQ0(3番)からひろっています。これだけです。 結果は、ICカウンタを繋がない状態と同じでまったく分周されていない40パルスの信号が出ています。他にも接続する部分があるのでしょうか?また、他になにか必要なのでしょうか?アドバイスよろしくお願いします。
- 締切済み
- バイク・原付自転車
- VHDL CPLD ISEパルス立上り・立下り検出
前略 ・VHDLの初心者です。ザイリンクスの ISE13.1とCPLD(XC9572XL)を使ってLEDのON/OFFをさせようとしています。 外部クロック(1KHz)をカウントして1000回でLEDを ON→OFF、OFF→ON を繰り返すようにしています。 外部クロック立上りのタイミングで Clk' event and Clk = '1' によりパルスをカウントするとは 論理合成もできてターゲットボード上でLEDのON/OFFを確認できています。 <質問> 外部パルスの立下りもカウントするようにしたいのですが、どのようなVHDL コードをかけばよいのでしょうか おしえてください。 下記のように if(( Clk' event and Clk = '1') or (Clk' event and Clk = '0')) とすると Syntax チェックはOKなのですが 論理合成(Synthesize XST)をおこなうと unsupported Clock statement の論理合成エラーがでてしまいます。 以下 VHDLソースコード //----------------------------- architecture RTL of Clk_Led_OnOff is Signal Count: Integer range 0 to 2000; Signal Led_signal : Std_Logic; begin process(Clk) begin if(( Clk' event and Clk = '1') or (Clk' event and Clk = '0')) -- if( Clk' event and Clk = '1') then Count <= Count + 1; --インクリメント if(Count < 1000)then Led_Signal <= '0'; else Led_Signal <= '1'; --OFF end if; if(Count >= 2000)then Count <= 0; end if; end if; Led <= Led_signal; end process; end RTL; 以上、よろしくお願いします
- 締切済み
- その他(プログラミング・開発)
- AVRのインプットキャプチャについて
AVRのインプットキャプチャを利用してパルス立ち上がりエッジ間の時間を計測したいのですが、どうも計算が合いません。知恵を貸してください・・・ 1MHzの駆動でカウンタの分周が64分周なら単純に1カウント64μSecですよね? 実際に計測しますと130Hzのパルス立ち上がりエッジ間に60カウントしました。ですので・・・ 60パルス*64μSec=3840μSec となると思うのですが、 130Hzならパルス立ち上がりエッジ間は・・・ 1Sec/130Hz=0.007692Sec すなわち7692μSecですよね? もし計算間違ってたら教えてください。 計測対象のパルスですが、これはPCファンの回転信号を計測しました。 DSOnanoで計測したら130Hzでした。 AVRのタイマ/カウンタの値はUARTで確認しました。 AVRのタイマーの設定を間違ってたらいけないので記載していきます。以下の通りです。 TIMSK = (1<<ICF1); TCCR1B = (1<<ICES1)|(3<<CS10);//上りエッジの64分周
- 締切済み
- その他([技術者向] コンピューター)
- VHDLでこんな事できますか?
VHDL(デバイスはCPLD)でこのような回路はできますか? クロック ----→????-------→ output1 | ----→ output2 | ----→ output3 クロックの入力に同期して output1 → OFF → output2 → OFF → output3 → OFF → output1 →・・以下最初 という感じで出力を一ずつ移動させ間にOFFを挟むという感じです。(出力はONのときどこか一箇所だけ) 入力はクロックだけです。
- ベストアンサー
- その他(プログラミング・開発)
お礼
遅くなりまして申し訳ありません。 回答いただき有難うございました。参考にさせていただきます。