アルテラ CYCLONE3のリセット信号について

このQ&Aのポイント
  • アルテラ CYCLONE3のリセット信号は外部から入力する必要はあるのか?
  • CYCLONE3には内部にPOR回路があり、この回路を内部ロジックのリセット信号に使用することはできないのか?
  • CYCLONE3では、外部のリセットICが必要となる場合もあるが、FPGA専用のリセットICが存在するのか?
回答を見る
  • ベストアンサー

アルテラ CYCLONE3のリセット信号は

アルテラ社のCYCLONE3を使用した回路を製作していてリセット信号の事でお聞きします。 電源投入後コンフィギュレーションを開始しコンフィギュレーション完了後に内部ロジックが動作を始めますが、この時リセット信号は外部からリセットICなどにより入力する必要はないのでしょうか? 内部ロジックではリセット信号処理を必要としています。  always@(negedge rst or posedge clk) などとしています。 外部からリセットICなどによりリセットを入れる場合、そうとうにディレイ時間の長いリセットICが必要になると思いますが、FPGA専用のリセットICなど有るのでしょうか。 またはCYCLONE3には内部にPOR回路がある様ですが、この回路を内部ロジックのリセット信号に使用する事は出来ないのでしょうか。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

#1です。 Conf_doneは、それでよいとおもいます。 汎用ピンの方は、プルアップでlow出力にして、 NMOSと抵抗でインバートの方が良いのでは? そうしないと他のリセットが必要な場合受付られません。 あと、ちょとだけ大きめのCをつけた方が 信号が遅れて安定するかもしれません。

その他の回答 (1)

回答No.1

リセットICはロジックのリセット用には要りません。 Cyclone3に在るかは知りませんが、 コンフィグレーション完了の信号を生成できるfpgaは多いので その信号からリセット信号を作ります。 または、汎用ピンをブルアップしておき、 コンフィグレーションが完了したらLOWを出力しても生成できます。 Low を出力するだけならフリップフロップ要らないのでLow を出す回路は リセット無くても不定になりません。 PORはコンフィグレーション開始用に在るのでは? コンフィグレーション開始にはリセットICが必要になる可能性があります。 これ用のPOR出はないでしょうか?

yonemise2
質問者

補足

ICE_FALCON様 御回答ありがとうございます。 すみませんが、もっと具体的に教えて頂けますでしょうか。 CYCLON3にはコンフィギュレーション完了信号CONF_DONEがありコンフィギュレーション中はLOW、完了するとHI-Z(外部プルアップ抵抗によりHI)となります。 このCONF_DONEをCYCLON3の端子に入力しそのままRESET信号とするという事でしょうか? また、もう一例の「汎用ピンをプルアップしておき、コンフィギュレーション完了したらLOWを出力して生成」は同じ様にこの出力端子をCYCLON3の端子に入力として接続し内部ロジックのRESET信号とするという事なのでしょうか。 宜しくお願い致します。 module reset(rst)begin output rst;   //外部でプルダウン assign rst = 1'b1; //rese lowアクティブの場合 endmoudle 上記で生成したrst信号を下記の様に内部リセット信号として使用。 module logic(clk, rst ,in1,in2.....)begin input clk, rst.... reg latch1; always @(posedge clk or negedge rst)begin if(!rst)begin latch1 <= 1'b0; end if( )begin .......... .......... end end endmodule こんな感じで良いのでしょうか。

関連するQ&A

  • PLDデバイスのリセット信号に関して

    PLDデバイス(CPLD、FPGA)でHDL言語できしょうしています、 always@(posedge clk or negedge rst)begin if(!rst)begin reg <= 0; end if begin レジスタのリセットを上記の様に記述しますが、この「rst」の信号はPLDデバイスの外部から 入力される設定なのですが、通常PLDのリセット信号をどの様な回路構成で生成するのでしょうか? PLD外部にCPUが有る場合はCPUから入力すればよいと思いますが、CPUなどが無くPLDデバイス 単体の場合、PLDデバイス用のリセットICなどあるのでしょうか? PLDデバイスはCPLDタイプであっても内部的にロジックをローディングするコンフィギュレーション動作が必要でこの間は数百msec程度かかると思われます。 ※CPUのリセット時間に比べかなり長いと思われます。 しかし通常のCPU用のリセットICはそんなに長い期間用はあまり無いと思います。 又はアルテラ社のデバイスを見ると「POR](パワーオンリセット)なる、ブロックが内蔵されていますが、このモジュールをリセット回路として使用できるのでしょうか。その場合、冒頭のVerilog言語で どの様に記述すればいいのでしょうか。 よろしくお願いします。

  • FPGAのコンフィグレーションについて

    お世話になっております。 現在、アルテラ製FPGA「cyclone4」を搭載したボードを設計しているのですが、 FPGAボードのコンフィギュレーションを遠隔で行いたいと考えています。 このボードにはマイコンも搭載されていますので、 「LANポート」⇒「マイコン」⇒「FPGA(JTAGポート)」⇒「コンフィギュレーションROM」 の構成で実現できないかと考えておりますが、 他にも何かアイディアがあれば教えて頂けないでしょうか。 以上、よろしくお願い致します。

  • FPGAで立ち下がりエッジ動作FF

    いつもお世話になります。 (カテゴリが違ったら済みません) verilogでFPGAを設計しています。 基本、同期回路設計でクロックの立ち上がりを使用しています。 外部回路の都合で、180度ずれたタイミングでデータを受け取りたく検討しています。 その際に、FFの記述で always@(negedge clk) と記述しようかと思ったのですが、通常ライブラリ等を見みますと立ち上がりエッジの FFしか見た事が無く、タイミング制約を守れなくなり、結果NGになるのではと思って 躊躇しています。 質問をまとめますと以下の通りです。 (1)always@(negedge clk)は、今時普通に使用しても良いものでしょうか? (2)上記のように記述しコンパイル出来たとした場合、クロックを反転させるインバータは  どこにある資源を使用するものなのでしょうか?  ・一括で反転してそのクロックで動く全FFに供給する。  ・各FF単位で反転してFF自信に繋ぐ。 お分かりになる方、ご教授願います。 宜しくお願い致します。 以上

  • クロック信号のカウント方法について教えて下さい

    15MHZのクロックをカウントし、設定値と比較一致した場合外部に2μS巾のワンショット信号を出しタイミングによっては、カウント一致後約60μSで外部信号によってカウンタをリセットする回路を考えているのですが、いいデバイスが見つかりません。マイコン(AVR)のソフトウェア上でカウントするのは無理のようですし(?)、かといってカウンタICにもそのようなICが見つかりません。 どなたか方法をお教え頂けませんでしょうか?カウント数は10進4桁以内です。 マイコンから設定値を書き込めるカウンタICはZENIC製ZEN2024Fを見つけたのですが、使えるのかどうか今ひとつよくわかりません。マイコンはAVRを使おうと思っています。 全くのマイコン初心者です。よろしくお願いいたします。

  • FPGAのプログラミング

    QuartusII version 8.0を使って,verilogのプログラミングを行いFPGAを動かそうと考えているのですが,プログラミングの経験がないため非常に苦戦しています. FPGAより制御系の信号を生成してたいのですが,そもそもFPGAの内部クロックはFPGAごとに決まっていて,電源を入れると内部クロックが発生し,それを分周していくといった感じでプログラムを作成すればよいのでしょか? また,FPGAのリセット信号もFPGA内部で元々生成されるのでしょか? FPGAを動かすためにはどのようにプログラミングを行っていけばよいのかいまいち理解できておりません。。。 宜しくお願いいたします.

  • マイコンリセットについて

    これまで、マイコンのリセット入力にはあまり深く考えずにリセットICを用いていたのですが、ちょっと疑問が出てきたので質問します。 マイコンのリセット信号が一定時間ローレベルに保持する必要があるのは、電源が安定するまで、 プログラムが動きだすのを抑えるとのことですが、これは、リセットをかけるのに保持時間が必要なわけではなく、リセット自体は、リセット信号の立下りエッジでかかって、その後、リセットが立ち上がるまでリセット状態を保持すると思っていいでしょうか? また、とすると、電源が既に安定した状態で何らかの理由でマニュアルリセットをかけたい場合には、上記のローレベル保持時間は必要ないと思っていいのでしょうか?

  • FPGAにおけるバスの引き回し

    よろしくお願い致します。 現在、アルテラ製「CycloneIII」のFPGA設計を行っております。 使用言語はVHDLです。 FPGAにはマイコンからのアドレスバス(26bit)、データバス(16bit)、 nWR、nRD、nCSが接続されます。 さらにFPGA内部には120個のレジスタが用意され、 マイコンはこのレジスタに対してアクセスを行います。 当初、FPGAは正常に動作していました。 しかし、仕様追加でレジスタを数個追加しただけで 今まで正常に動作していたレジスタが動作しなくなりました。 (書き込みができない、出力データに抜けが生じる等) そこで皆様に質問ですが、 FPGA内部に100を超えるレジスタを用意する場合 一般的にバスや制御信号をどのようにして引き回しているのでしょうか。 (ファンアウトを減らすためにnWR信号を各レジスタごとに用意する等・・・) 何卒よろしくお願い致します。

  • Verilog-HDLのFF記述について

    先程アップしたのは、図が変になってしまいました。 改めて質問します。 1つのFF(非同期リセット)をVerilog-HDLで記述すると、以下のように記述出来ますよね? always @ ( posedge CLK or negedge RESET ) begin if ( !RESET ) begin Q <= 1'b0 ; xQ <= 1'b1 ; end else begin Q <= D ; xQ <= ~D ; end end この1つのFFをalways文を2つ使って記述出来るんですか? ご回答宜しくお願いします。

  • ハーフブリッジドライバICの内部構造

    ハーフブリッジ回路の原理はわかるのですが、 IRS2110のようにGNDが共通の信号をGNDを分離させて(?)FETに信号を流している ドライバICの内部回路はどういう原理になっているのでしょうか? 内部回路を見ても恥ずかしながらまったくわかりません。 また、こういった回路をディスクリート部品でくみ上げてみる、といった話を聞いたことが無いのですが、やっぱり深い知識と技術等が必要なのでしょうか?

  • FPGAのシミュレーションに関して

    いつもお世話になっています。 以下の開発環境におけるFPGAのロジックのシミュレーションに疑問があるので質問します。 環境 modelsim Altera starter edition 質問概要 10進カウンターを作ってクロックの立ち上がりで動作するように作ったのに立下りで動作するのは何故か。(10進数をカウンター内部変数TQで数え上げqに出力しているがTQはクロックの立ち上がりで動いているが、qは立下りで動いている様に見える) 10進カウンターの内部構造 ソース概要 ・内部変数TQが0から始まり、+1していき10回数えたら0から桁上がりの変数cを1にしてやりなおし。 ・計算中の内部変数TQで7SEG LEDを駆動させるためのアウトプットqがある。 ・リセットは0の時リセットされる。 VHDLのソースを載せます。 library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_unsigned.all; entity COUNT10 is port(RESET,CLK : in std_logic; Q: out std_logic_vector(3 downto 0); C: out std_logic ); end COUNT10; architecture RTL of COUNT10 is signal TQ : std_logic_vector(3 downto 0); begin process (RESET,CLK ) begin if(RESET='0') then TQ <= "0000"; C<='0'; elsif(CLK 'event and CLK ='1') then if(TQ="1001") then TQ <= "0000"; C <='1'; elsif(TQ="0000") then C <='0'; TQ <= TQ + '1'; else TQ <= TQ + '1'; end if; end if; Q<=TQ; end process; end RTL; シミュレーション結果 クロックを数え上げた内部変数TQがqへ値を渡す仕組みになっています。 これがたち下がりの時に行われている様に見える。

専門家に質問してみよう