/* * CPLD: XC9536XL で遊ぶ * by uratan! 2005.1.10 */ このファイルに取り込まれている以下の 3ファイルを切り出して、適当な フォルダに置いてください。 test.npl --- project file top.v --- verilog source file top.ucf --- pin assignment file ISE WebPACK (私の場合は 6.3.0.3i) がインストールされている状態で、 test.npl をダブルクリックすると "Project Navigator" が起動しますので、 左下 Process View の中の "Implement Design" という行をダブルクリックします。 ガリガリと処理が始まって、最終的に "top.jed" というファイルができます。 この top.jed を XC9536XL に送り込むためには まあいろいろ方法があるの ですが、(最初は)パラレル接続で iMPACT を使うのがわかりやすいと思います。 パラレル接続した状態で iMPACT を起動して、Wizrad に "Configure Devices", "Boundary-Scan Mode", "Automatically connect to cable and identify Boundary-Scan chain" などと答えていくと、自動的にデバイスがスキャンされて XC9536XL のアイコンが 現れます。 このデバイスのアイコンを右クリックして "Assign New Configuration File..." で top.jed を割り当てておき、同様に右クリックで "Program" を選んで XC9536XL に 書き込むことができます。 XC9536XL の内部の ROM に書き込まれますので電源を切っても回路は消えません。 :::::::::::::::::::: ::::: test.npl ::::: :::::::::::::::::::: ------------8<------------- cut here --------------->8------------- JDF G // Created by Project Navigator ver 1.0 PROJECT test DESIGN test DEVFAM xc9500xl DEVFAMTIME 1102660422 DEVICE xc9536xl DEVICETIME 1102660422 DEVPKG PC44 DEVPKGTIME 0 DEVSPEED -10 DEVSPEEDTIME 1102575246 DEVTOPLEVELMODULETYPE HDL TOPLEVELMODULETYPETIME 0 DEVSYNTHESISTOOL XST (VHDL/Verilog) SYNTHESISTOOLTIME 0 DEVSIMULATOR Other SIMULATORTIME 0 DEVGENERATEDSIMULATIONMODEL Verilog GENERATEDSIMULATIONMODELTIME 0 SOURCE top.v DEPASSOC top top.ucf [STRATEGY-LIST] Normal=True ------------8<------------- cut here --------------->8------------- ::::::::::::::::: ::::: top.v ::::: ::::::::::::::::: ------------8<------------- cut here --------------->8------------- /* * CPLD/Verilog test on test board * by uratan! 2004.12.09 */ module top(clk, q[7:0]); input clk; /* from TimerIC 555, about 25Hz */ output[7:0] q; /* for 8 LEDS */ reg toggle; reg[3:0] counter; /* * toggle by clk */ always @(posedge clk) toggle = ~toggle; assign q[7] = clk; assign q[6] = toggle; assign q[5] = ~clk; assign q[4] = ~toggle; /* * 4bit counter */ always @(posedge clk) counter <= counter + 1; assign q[3] = ~counter[3]; assign q[2] = ~counter[2]; assign q[1] = ~counter[1]; assign q[0] = ~counter[0]; endmodule ------------8<------------- cut here --------------->8------------- ::::::::::::::::::: ::::: top.ucf ::::: ::::::::::::::::::: ------------8<------------- cut here --------------->8------------- #PACE: Start of Constraints generated by PACE #PACE: Start of PACE I/O Pin Assignments NET "clk" LOC = "P5" ; NET "q<0>" LOC = "P19" | SLEW = SLOW ; NET "q<1>" LOC = "P20" | SLEW = SLOW ; NET "q<2>" LOC = "P22" | SLEW = SLOW ; NET "q<3>" LOC = "P24" | SLEW = SLOW ; NET "q<4>" LOC = "P25" | SLEW = SLOW ; NET "q<5>" LOC = "P26" | SLEW = SLOW ; NET "q<6>" LOC = "P27" | SLEW = SLOW ; NET "q<7>" LOC = "P28" | SLEW = SLOW ; #PACE: Start of PACE Area Constraints #PACE: Start of PACE Prohibit Constraints #PACE: End of Constraints generated by PACE ------------8<------------- cut here --------------->8------------- ---- uratan@miomio.jp