タグ付けされた質問 「verilog」

Verilogは、電子システムのモデル化に使用されるハードウェア記述言語(HDL)です。これは、デジタルロジックチップの設計、検証、および実装で最も一般的に使用されます。[fpga]、[asic]、または[verification]も適宜タグ付けしてください。多くのVerilog質問への回答はターゲット固有です。


2
ASICデザインはFPGA HDL合成とどのように違いますか?
ザイリンクスISE、ラティスダイアモンドなどのFPGA / HDLツールスイートの経験があります。一般的なワークフローは、Verilog / VHDL、シミュレーション、テスト、およびFPGAのプログラミングです。 ASICの設計は非常に異なっていると言う人が数人います。ゲートレベルASICとトランジスタレベルASICの2つの主要なASICに使用されるツールセットは何ですか?Catapult CやCadence C to Siliconなどの高位合成ツールを検討してきましたが、まだ試したことはありません。典型的なHDLワークフローを変更/高速化できるASIC / FPGAフィールドで利用可能なさまざまなタイプのツールを説明できますか?
42 fpga  vhdl  verilog  software  asic 

9
FPGAデザインはほとんど(または完全に)非同期にできますか?
大学でFPGA / Verilogコースが非常に短く(5年前)、常にどこでもクロックを使用していました。 私は趣味として再びFPGAを使い始めており、それらのクロックについて疑問に思わざるを得ません。それらは絶対に必要ですか、それともFPGAベースの設計は完全に非同期にできますか?複雑なロジックの束を構築し、できる限り速くそれを波及させることができますか? 信号が回路のすべての部分を伝搬し、出力が安定したことを知るなど、これには多くの落とし穴があることを認識しています。それはポイントの横にあります。完全に非同期の設計を実際に構築したいのではなく、機能の理解を深めるためだけです。 私の目には、絶対にクロックを必要とする構造はであるように見えます。reg私の理解では、典型的なFPGA(Cyclone IIなど)のフリップフロップは特定のクロック信号にあらかじめ配線されています。これは正しいです?このような他の暗黙的なクロックはありますか?通常、デザインによって手動で駆動できますか?
39 fpga  verilog 

7
HDLでのCPUの読みやすく教育的な実装
VHDLまたはVerilogでのCPUの読みやすく教育的な実装を推奨できますか?できれば十分に文書化されたもの。 PS私は私が見ることができることを知っていますopencoresが、私は特に人々が実際に見て、面白いと思うものに興味があります。 PS2。不機嫌なタグについては申し訳ありませんが、新しいユーザーとして新しいタグを作成することはできません


7
HDLの学習方法
今学期にデジタルデザインのコースを受講しましたが、とても気に入っています。今では、組み込みシステムとデジタル設計のほとんどの作業が最初にコンピューターシミュレーターで行われ、次にハードウェアを使用して実装されることがわかっています。だから、HDLを学習するにはどうすればいいのかと思っていました。質問が少ない 何?私は標準が何であるかを知りませんが、どれを選ぶのが簡単かを知りたいです。ほとんどのHDLはFPGAで使用するように設計されていることを理解していますが、そうではありません。 どうやって?独立した例のある教科書をたどるか、小さなシステムを実装するようなプロジェクトに着手すべきか(信号制御のようなものかもしれません)。 どこ?リソースはどこで入手できますか?
24 simulation  vhdl  verilog  hdl 

6
シリアルプロトコルの区切り/同期技術
非同期シリアル通信は今日でも電子機器に広く普及しているため、私たちの多くはそのような質問に時々出くわしたと思います。電子デバイスDと、PCシリアル回線(RS-232または同様のもの)で接続され、継続的に情報を交換する必要があるコンピューターを検討してください。すなわち、PCそれぞれコマンドフレームを送信しており、それぞれステータスレポート/テレメトリーフレームで応答しています(レポートはリクエストへの応答として、または独立して送信できます-ここでは実際には関係ありません)。通信フレームには、任意のバイナリデータを含めることができます。通信フレームが固定長パケットであると仮定します。X msDY ms 問題: プロトコルは継続的であるため、受信側は同期を失ったり、進行中の送信フレームの途中で「結合」したりする可能性があるため、フレームの開始(SOF)がどこにあるかはわかりません。Aデータは、SOFに対する相対的な位置に基づいて異なる意味を持ち、受信したデータは破損する可能性があり、永久に破損する可能性があります。 必要なソリューション 短い回復時間でSOFを検出するための信頼性の高い区切り/同期スキーム(つまり、再同期に1フレーム以上かかることはありません)。 私が知っている(そして使用している)既存のテクニック: 1)ヘッダー/チェックサム -事前定義されたバイト値としてのSOF。フレームの最後のチェックサム。 長所:シンプル。 短所:信頼できません。不明な回復時間。 2)バイトスタッフィング: 長所:信頼性が高く高速な回復で、どのハードウェアでも使用可能 短所:固定サイズのフレームベースの通信には適していません 3)9番目のビットマーキング -各バイトに追加ビットを追加します。SOFでマークされたSOF 1とデータバイトには次のマークが付けられ0ます。 長所:信頼性が高く、高速な回復 短所:ハードウェアサポートが必要です。ほとんどのPCハードウェアおよびソフトウェアでは直接サポートされていません。 4)8番目のビットマーキング -上記の一種のエミュレーション。9番目ではなく8番目のビットを使用し、各データワードに7ビットのみを残します。 長所:信頼性の高い高速リカバリは、どのハードウェアでも使用できます。 短所:従来の8ビット表現と7ビット表現の間のエンコード/デコードスキームが必要です。やや無駄だ。 5)タイムアウトベース -定義されたアイドル時間の後に来る最初のバイトとしてSOFを想定します。 長所:データオーバーヘッドなし、シンプル。 短所:それほど信頼できません。Windows PCなどのタイミングの悪いシステムではうまく動作しません。潜在的なスループットのオーバーヘッド。 質問: 問題に対処するために存在する他の可能な技術/解決策は何ですか?上記のリストで簡単に回避できる短所を指摘できますか?システムプロトコルをどのように設計しますか(または設計しますか)?
24 serial  communication  protocol  brushless-dc-motor  hall-effect  hdd  scr  flipflop  state-machines  pic  c  uart  gps  arduino  gsm  microcontroller  can  resonance  memory  microprocessor  verilog  modelsim  transistors  relay  voltage-regulator  switch-mode-power-supply  resistance  bluetooth  emc  fcc  microcontroller  atmel  flash  microcontroller  pic  c  stm32  interrupts  freertos  oscilloscope  arduino  esp8266  pcb-assembly  microcontroller  uart  level  arduino  transistors  amplifier  audio  transistors  diodes  spice  ltspice  schmitt-trigger  voltage  digital-logic  microprocessor  clock-speed  overclocking  filter  passive-networks  arduino  mosfet  control  12v  switching  temperature  light  luminous-flux  photometry  circuit-analysis  integrated-circuit  memory  pwm  simulation  behavioral-source  usb  serial  rs232  converter  diy  energia  diodes  7segmentdisplay  keypad  pcb-design  schematics  fuses  fuse-holders  radio  transmitter  power-supply  voltage  multimeter  tools  control  servo  avr  adc  uc3  identification  wire  port  not-gate  dc-motor  microcontroller  c  spi  voltage-regulator  microcontroller  sensor  c  i2c  conversion  microcontroller  low-battery  arduino  resistors  voltage-divider  lipo  pic  microchip  gpio  remappable-pins  peripheral-pin-select  soldering  flux  cleaning  sampling  filter  noise  computers  interference  power-supply  switch-mode-power-supply  efficiency  lm78xx 

5
推定ラッチが悪いのはなぜですか?
私のコンパイラは、コンビナトリアルループ(always @(*)Verilogの)でのラッチの推測について不満を言っています。また、推測されるラッチはなるべく避けるべきだと言われました。 推定ラッチの正確な問題点は何ですか?確実に組み合わせループを作成しやすくします。
22 verilog  hdl  latch 

6
テストと検証の違いは何ですか?
私が見たすべての教科書は、テストと検証が2つの異なる概念であるという事実を大きく作ります。しかし、それらのどれも明確な(または、最後に私にとって十分に明確な)区別を提供しません。 コンテキストを提供するために、ハードウェア設計言語(HDL)を使用したデジタルハードウェア設計の検証に興味があります。 「物理的」または「有形」の違いに頼る説明を見てきました。製造されたデバイスに関するものであれば、それはテストです。これが全体の話ですか?そうだとすれば、なぜ「テスト」という言葉が検証で頻繁に出てくるのか(特に機能検証では、テストケース、テストベンチ、DUT(テスト対象デバイス)、ディレクテッドテスト、ランダムテストなどについて話します)

3
ブロッキング割り当てとノンブロッキング割り当てVerilogの違い
私がこのページを読んでいたのは、http://www.asic-world.com/verilog/verilog_one_day3.htmlで、次のものに出くわしたときです。 通常、フリップフロップをリセットする必要があるため、クロックが0から1(ポーズ)に移行するたびに、リセットがアサートされているかどうかを確認し(同期リセット)、通常のロジックを続行します。よく見ると、組み合わせロジックの場合、割り当てに「=」があり、順次ブロックには「<=」演算子があります。「=」は割り当てをブロックし、「<=」はブロックしない割り当てです。「=」は、begin / end内でコードを順番に実行しますが、ノンブロッキングの「<=」は並行して実行されます。 ブロッキングの割り当てが並列であるのに対し、ノンブロッキングの割り当ては順次であると確信していました。結局のところ、常にブロックの外側にあるassignステートメントでブロック割り当てを行うことができ、それらはすべて並行して実行されます。これは間違いですか、それともalwaysブロック内の動作は異なりますか?また、常にブロック内で動作が異なる場合、非ブロック割り当てを常時ブロック外で行うことはできますか?
15 verilog 

2
この演算子は、Verilogで「+:」と呼ばれます
私はVerilogテストケースを調べており、声明を見つけました assign XYZ = PQR_AR[44*8 +: 64]; 「+:」演算子とは何ですか?私はグーグルでこれを見つけようとしましたが、関連する答えは得られませんでした。
14 verilog 

4
BJTトランジスタは飽和状態でどのように機能しますか?
これは、NPN BJT(バイポーラジャンクショントランジスタ)について私が知っていることです。 ベースエミッタ電流はコレクタエミッタでHFE倍に増幅されるため、 Ice = Ibe * HFE Vbeはベースエミッタ間の電圧であり、他のダイオードと同様に、通常は約0.65 Vです。Vecしかし、私は覚えていません。 Vbeが最小しきい値よりも低い場合、トランジスタは開いており、どの接点にも電流は流れません。(大丈夫、たぶん数μAのリーク電流ですが、それは関係ありません) しかし、まだいくつか質問があります。 トランジスタが飽和しているときの動作は? Vbeしきい値より低い以外の条件の下で、トランジスタをオープン状態にすることは可能ですか? さらに、この質問で私が犯した間違いを(回答で)遠慮なく指摘してください。 関連する質問: トランジスタがどのように機能するかは気にしませんが、どのように動作させることができますか?

5
CPLDまたはFPGAの回路図設計よりもVerilogまたはVHDLを選択する理由は何ですか?
プログラマブルロジックのバックグラウンドはまったくなく、ほとんどのプロジェクトでマイクロコントローラーを使用していますが、最近はビデオを操作する必要があり、マイクロコントローラーが必要なものに対して遅すぎるため、CPLDでプレイを開始しました。 回路図デザインのみを使用してCPLDで良好な結果を得ることができましたが、CPLDの情報を検索すると、VHDLおよびVerilogを使用した多くの例が見つかりました。これらの言語の1つでデバイスを定義したいと思うのはなぜなのか興味があります。回路図設計でできないことは何ですか?主に機能に使用されていますか? これまでCPLDのみを使用していましたが、FPGAデザインはこれらの言語を使用することでCPLDよりも多くの利点がありますか?

1
Verilog:ベクトルのすべての信号を一緒にXOR
wire large_bus[63:0]幅64のベクトルが与えられたとします。個々の信号をすべて記述せずにXORするにはどうすればよいですか。 assign XOR_value = large_bus[0] ^ large_bus[1] ^ ... ^ large_bus[63] ? 私は、幅がで指定されているベクトルに対してこれを行うことに特に興味がありますlocalparam。
13 verilog 

6
VerilogまたはVHDL over Cを使用する動機は何ですか?
私はプログラミングのバックグラウンドを持っており、ハードウェアやファームウェア(せいぜい少し電子機器とArduino)をいじりすぎてはいません。 Cやアセンブリなどのプログラミング言語で、VerilogやVHDLなどのハードウェア記述言語(HDL)を使用する動機は何ですか? この問題は選択の問題ですか? ファームウェアがHDLで記述されているハードウェアを読むと、命令を並行して実行できるという明らかな利点があります。ただし、ファームウェアをCで書くかアセンブリで書くか(CPUが必ずしも必要ない場合、アセンブリはどのように適切ですか?) したがって、いくつか質問があります(何かを説明することをheしないでください): ファームウェアは、実際にはHDLまたはソフトウェアプログラミング言語で記述できますか、それとも同じミッションを実行するための別の方法ですか?実世界の例が欲しいです。各オプションから生じる制約は何ですか? ソフトウェアを介したファームウェアの一般的な使用は、ハードウェアアクセラレータ(GPU、ネットワークアダプタ、SSLアクセラレータなど)で使用されることを知っています。私が理解しているように、この加速は必ずしも必要ではありませんが、推奨されるだけです(たとえば、SSLや複雑なアルゴリズムの加速の場合)。すべての場合にファームウェアとソフトウェアのいずれかを選択できますか?そうでない場合は、ファームウェアが明確かつ明確に適切であるケースに満足しています。 ファームウェアのほとんどがROMまたはフラッシュに焼き付けられていることを読みました。そこにどのように表されていますか?ソフトウェアのようなビットで?もしそうなら、深遠な違いは何ですか?ファームウェアの場合、適応回路が利用可能ですか? いくつかの仮定であちこちで間違いを犯したと思いますが、ご容赦ください。ありがとうございました!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.