-
Notifications
You must be signed in to change notification settings - Fork 0
BinaryIndustry/IronSand
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
System Verilogのコードを生成したり、回路シミュレーションができるインタプリタです。 ironsand.exeを実行するとインタプリタが起動します。 ironsand.exeにコマンドライン引数を与えるとテキストファイルを実行します。(./ironsand.exe test.txt) プログラム終了時にSystemVerilogコードはmain.svというファイル名で保存されます。 コメントアウトは未実装なので各行の//より前の文字列を入力し、エンターを押してください。 例: CLK = in[] //ビット幅1の入力信号"CLK"を追加します。 LEDR = out[10] //ビット幅10の出力信号"LEDR"を追加します printsv() //現在のSystem Verilogコードを表示します at (pos CLK): //CLK信号の立ち上がりエッジに次の処理を実行します LEDR = ~LEDR //LEDRを反転する(タブまたはスペース二つでインデントしてください) printsv() clk = {$CLK} //リスト"clk"を生成し、信号"CLK"の値を格納する led = {$LEDR} for (i 100): //次の処理を100回繰り返します CLK $= $!CLK; //CLKの信号を反転し、信号の変化によって発生するイベントを処理します(ここでは;(セミコロン)はイベント処理演算子となる) clk.push($CLK) //CLKの現在の値を配列に追加します led.push($LEDR) tchart(clk, led) //リストclk、ledを元にタイミングチャートをsvgファイルで生成します(./timingchart.svg) quit() //インタプリタを終了します 予約語 in, out, io, at, pos, neg, defun, if, else, elif, for, deftask, cwk 演算子(一部未実装) =, +, -, *, /, **, &, |, ^, &&, ||, ~, !, +=, -=, *=, /=, **=, &=, |=, ^=, &&=, ||= ==, !=, >, >=, <, <=, <<, >>, [, ], (, ), {, }, " ", \t, \n, :, +:, -:, ",", 0x, $, $=, ., ;, :;, TO DO ・メモリリークの調査 ・バグ探し ・Verilogモジュール呼び出し機能の実装 ・実行速度の改善 ・リファレンスの作成 ・16進数 ・文字列型 ・組み合わせ回路 ・Print関数で配列要素を表示できるようにする(print($a[0]) -> print(a[0]))
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published