FPGAデバッグボード-フランケンシュタイン。 時間。 アルテラEPM7064 VSラティスLC4064v

デバッグボード-フランケンシュタインの小型FPGAアルテラEPM7064の新年シリーズの冒険の続き。 前のシリーズでは...







同じ重量カテゴリの2つのFPGA、 アルテラEPM7064ラティスLC4064vを比較します。 ただし、そのうちの1つ(重量のみ)は64マクロセルです。 それ以外の場合、パラメータで判断すると、これらのFPGAは非常に異なる目的を持っています。 2005年のドキュメントによると、アルテラのFPGAは決して若くなく、セル数が少ないです。 また、それはそれらの時間の一般的な電圧-5ボルトを持っています。 最大動作周波数は200 MHzを超えません。 同時に、ラティスは最大400 MHzの周波数まで動作できますが、同時に3.3ボルトの電圧で駆動されます。 はい、古い回路とやり取りしたい場合、これは5ボルトほど便利ではありません(ただし、5ボルトに対する耐性が宣言されています)。 このシリーズのラティスのドキュメントは2014年を示しているので、これらは最新の高速FPGAであると仮定しますが、ボリュームは小さく、説明の「SuperFAST CPLD」によって判断すると、位置が多少異なります。







それらをどのように比較しますか? それらの同じ問題を解決してみましょう。 Lattice LC4064vで既に時計を作ろうとしており、成功しました。 ここで、アルテラEPM7064-フランケンシュタインで時計を作ってみましょう。









インジケータ



ボードはすでに準備ができているので、インジケータを追加する必要があります。 自然にダイナミック。 もちろん、実験の純度のために、ラティスと同じインジケーター(または同一)を適用する必要があります。 しかし、私は同じものを持っていませんし、動作中のデバイスから部品を取り外すのは悪い習慣だと思います。 したがって、私は最近私に提示された時計の製造に適した別の指標を取りました。







このように見えますが、ピン配置が異なります。







画像






彼女が見つかりませんでした。 それを説明する理由はない このような画面は数多くあり、異なる場合があります。 テスターを使用すると、ピンの割り当てを簡単に設定できます。 そして、ブレッドボードと私のお気に入りのラップアラウンドテクノロジーの助けを借りて、インジケーターピンのシーケンス(1-2-3-4、ABCDEFG)を注文しました。







ラティスの腕時計では、トランジスタを使用して、グループを選択するラインをオフロードしました。 すぐに、私はこれを行わず、電流制限抵抗を使用せずに、LEDをFPGA端子に直接接続することにしました(一般に、これは正しくありません)。 ロジックはほぼこの図のとおりです。













その結果、テスト構成には番号1-2-3-4が表示されました。 LEDは十分に明るいです。 FPGAはほとんどウォームアップしません。 フランキーが明るい日まで生き、そのような負荷で失敗しないことを願っています。 そして、この可能性を減らすために、インジケーターがオンになる期間を減らして、インジケーターの明るさを減らします。







一般に、画面への出力のロジックを除いて、コードは同じです。







メインモジュール
module epm7064_clock(clk, dig_sel, segs, btn_HH, btn_MM, btn_SS, btn_SAFE, led_second_tick); ... output wire [3:0] dig_sel; //    output wire [6:0] segs; //   ... //  ,      -   //        //       ,     1/4 . //    0001 -> 0010 -> 0100 -> 1000 wire [3:0] top_bits = clk_div[6:3]; // wire [4:0] t_dig_sel = (top_bits == 4'b0000 && h_show &&(!SAFE_MODE)) ? 4'b0001 : (top_bits == 4'b0100 &&(!SAFE_MODE)) ? 4'b0010 : (top_bits == 4'b1000 &&(!SAFE_MODE)) ? 4'b0100 : (top_bits == 4'b1100 &&(!SAFE_MODE)) ? 4'b1000 : 4'b0000; //     //     ,    ... bcd2seg0_2 sseg_1( .sin(hh), .sout(s_m1)); bcd2seg0_9 sseg_2( .sin(h), .sout(s_m2)); bcd2seg0_5 sseg_3( .sin(mm), .sout(s_m3)); bcd2seg0_9 sseg_4( .sin(m), .sout(s_m4)); wire [6:0] t_segs = (top_bits == 4'b0000) ? ~s_m1 : (top_bits == 4'b0100) ? ~s_m2 : (top_bits == 4'b1000) ? ~s_m3 : (top_bits == 4'b1100) ? ~s_m4 : 7'b0000000; ... //   
      
      









プロジェクトが完了しました-https://github.com/UA3MQJ/epm7064_clock







クロックジェネレーター



ラティスの時計では、FPGA自体の論理要素でジェネレーターを実行しようとしました。 今回は、アルテラのみでジェネレータを起動しようとしました。 ネットワーク上には、ジェネレーターがmaxおよびさらにはcycloneで正常に起動したという参照があります。 しかし、32768でジェネレーターを起動できませんでした。 たぶんそれは失敗したクォーツであったか、実験中にそれを台無しにしたか、パラメーターが同じではありません。 私は1つのインバーターと2つの回路の両方を試しました。 インバーターはバッファーとして、およびなしで使用しました。 一般に、週末全体が無駄になり、発電機を起動できませんでした。







一般に、そのような発電機は悪い考えだと考えられています。 既製のジェネレーターはより安定しており、開発が高速です。 一方、すべてを正しく計算し、FPGAでジェネレーターを安定して実行することができた人は、このソリューションを使用します。







その間、私はジェネレーターを起動できませんでした、私は待つでしょう、多分私の友人はそれを行うことができます。 それまでの間、32.768KHz OSC Active Crystal Oscillatorを注文します。







[1]からの回路も何らかの理由で機能しませんでした。 むしろ、世代はそこにありましたが、振幅は小さく、波形の安定性は私のオシロスコープがそれと同期するのに十分ではありませんでした。 おそらく、すべて同じように、問題は特定の石英にあります。













確認するには、ラティスのクロックジェネレーターを使用できます。









結論



アルテラFPGAの内部では、LEDスクリーンへの出力を除いて同じロジックを実装しました(タイプが異なるため)。 アルテラのFPGAリソースが61セル、ラティスが59セルを費やしたことに注目するのは興味深いことです。理由はさまざまな画面にあると思います。 ラティスは画面を制御するために16行を使用しますが、アルテラは画面を制御するために11行を必要とします。 おそらく、より少ない行のために、解読するのがより困難であることが判明しました。 したがって、同等のシンセサイザーとハードウェア機能を備えていると想定できます。 アルテラの出力電流はわずかに高く、異なるタイプのスクリーンであるため、追加のトランジスタなしで行うことが可能であり、LEDインジケータは接続され、ほぼまっすぐに機能しました。







アルテラEPM7064の消費電流は、safe_modeで平均100 mAと66 mA(発電機電流32768 Hzを除く)でしたが、ラティスは3.3ボルトで125 mAを消費しました。 消費量はほぼ同じです。 一般に、5ボルトからの電力がより便利です。 ただし、このプロジェクトでは、5ボルトロジックの他の超小型回路との相互作用がないため、電圧安定器の問題にすぎません。 したがって、3.3V電力を超える利点もありません。







32768ジェネレーターは、ラティスでもアルテラでも組み立てられませんでした。 ジェネレーターを構築できると確信しています。このプロジェクトでは、このようなハードウェアハックは非常に効果的ですが、うまくいきませんでした。







そして、他のプロジェクトでフランキーに会いたいので、私たちは長続きしません!







使用されたソースのリスト



  1. 7セグメントインジケーター。 動的表示の組織
  2. 水晶低周波発振回路の万華鏡



All Articles