SpinalHDL」カテゴリーアーカイブ

[SpinalHDL] 代入(assignment)について正しく理解する

Correct understanding of assignments in SpinalHDL. シミュレーション波形の見直し 先日、SpinalHDL で文字列送信のコードを設計しましたが、後になってシミュレーション波形を見ていて釈然としない点がありました。 以下に波形を示します。 io.payload の更新が 1クロック遅れる 最初のクロックエッジで io_payload g “H” になった後、次のクロックでも io.payload が &… 続きを読む »

[SpinalHDL] Spinal の FIFO(m2sPipe)を解読してみる

Before designing FIFO by myself, trying to understand Spinal m2sPipe. 前回、自力で FIFO の設計を試みましたが、直感的なやり方では設計が困難なことが分かりました。そこで、もう少し形式的な手法ということで、いくつか教科書をひっくり返し、Mealy マシンの設計について復習してみました。Google で検索するといろいろ出てくると思いますが、この説明の 13ページに出てくる図(Mealy と Moore マ… 続きを読む »

[SpinalHDL] FIFOの設計は難しかった

FIFO design was harder than expected. 今回は、SpinalHDL を使って FIFO の設計をしてみることにします。 FIFO ってなに? FIFO は、ソフト設計の世界ではキューと呼ばれることのほうが多いかも知れません。今回の私の興味としては、前回までに設計してきた UART との関係があります。例えば、UART 送信ブロックはシステムクロックの毎サイクルに送信データ(キャラクタ)を受け付けることはできません。UART が 1つのキャラ… 続きを読む »

[SpinalHDL] UART 受信回路も設計してみた

Also designed UART Receiver. ソフト屋のための SpinalHDL FPGA 設計入門「UART 設計編」の番外編、受信回路の設計です。前回までに UART の送信回路を設計しました。送信回路ができれば受信回路も簡単だろう、受信回路は後回しにしてバス設計でも勉強するか、と思っていたのですが、受信回路には受信回路のノウハウがありそうなので、今日は受信回路を設計してみました。 まずは Git repo 今回も最初に Git repo へのリンクを書いて… 続きを読む »

[SpinalHDL] UART を作って FPGA で動かす(その3)

Implementing AMBA 3 APB (Advanced Peripheral Bus) for the designed UART transmitter. ソフト屋のための SpinalHDL FPGA 設計入門「UART 設計編」の第3回目です。前回は、UART 送信器の HDL コードをクリーンアップすると同時に、文字列送出のためのロジックを設計しました。さらにレジスタの初期化も盛り込みました。今回は、設計した UART 送信器にバス回路を追加してみましょう… 続きを読む »

[SpinalHDL] UART を作って FPGA で動かす(その2)

Improving my first UART logic, designed by SpinalHDL, for FPGA. ソフト屋のための SpinalHDL FPGA 設計入門「UART 設計編」の第2回目です。前回は、とりあえず一文字のキャラクタを連続して送信する回路を設計し、実際に UART-USB ブリッジを介してパソコンに繋いでみました。 今回の内容は以下の通りです。 UartCore 状態遷移図のあちこちにある冗長なカウンタをまとめる UartCore をイ… 続きを読む »

[SpinalHDL] UART を作って FPGA で動かす(その1)

How software programmers design a UART peripheral on FPGA. ソフト屋のための SpinalHDL FPGA 設計入門の続編です。前回は SpinalHDL で PWM 回路を設計し、FPGA(TinyFPGA BX)で動かしてみました。今回はもう少し実用性と今後の発展を考えて、UART 送信回路を設計してみることにします。 ちなみに、SpinalHDL にはちゃんとした UART の設計例が載っているのですが、初めから… 続きを読む »

ソフト屋のための SpinalHDL FPGA 設計入門(その4)

Finally run the PWM LED on TinyFPGA BX. 前回までの続きです。いつまで立っても犯人の挙がらない刑事ドラマみたいになってきたので、今回は意地でも FPGA ボード上で LED をホワホワさせましょう。 前回は、PwmLed クラスを実装し、シミュレータ(Verilator + GTKwave)で回路の波形出力を確認しました。ところが、PwmLed のような論理回路を実際に FPGA 上で動かすにはそれだけではダメで、他にトップレベル(top… 続きを読む »

ソフト屋のための SpinalHDL FPGA 設計入門(その3)

Continue sleepy LED PWM project by SpinalHDL. 前回の続きです。前回までで PWM の基本ロジックが完成したので、今回は LED ホワホワルーチン、じゃなかった、ホワホワロジックを設計していきましょう。 前回までの流れ 初めての SpinalHDL: デジタル PWM を SpinalHDL で書いてみよう Verilog 生成とシミュレーション: 記述した回路をシミュレーションしてみよう 前々回に設計したブロック図を再掲します。 … 続きを読む »

ソフト屋のための SpinalHDL FPGA 設計入門(その2)

How to begin a simple SpinalHDL project and simulate it. 本年もよろしくお願いいたします。 前回は SpinalHDL でデジタル PWM 回路を設計してみました。今回は、それをシミュレーションで動作させ、期待通りの波形が出力されるか見てみましょう。 前回までの流れ 初めての SpinalHDL: デジタル PWM を SpinalHDL で書いてみよう SpinalHDL プロジェクトファイルの準備 前回、Spinal… 続きを読む »