ዝርዝር ሁኔታ:

FPGA Cyclone IV DueProLogic - የግፊት አዝራር እና LED: 5 ደረጃዎች
FPGA Cyclone IV DueProLogic - የግፊት አዝራር እና LED: 5 ደረጃዎች

ቪዲዮ: FPGA Cyclone IV DueProLogic - የግፊት አዝራር እና LED: 5 ደረጃዎች

ቪዲዮ: FPGA Cyclone IV DueProLogic - የግፊት አዝራር እና LED: 5 ደረጃዎች
ቪዲዮ: FPGA Cyclone IV DueProLogic controls Arduino (tutorial & code) 2024, ህዳር
Anonim
FPGA Cyclone IV DueProLogic - የግፊት አዝራር እና ኤልኢዲ
FPGA Cyclone IV DueProLogic - የግፊት አዝራር እና ኤልኢዲ

በዚህ ማጠናከሪያ ትምህርት ውስጥ ፣ እኛ የውጭ LED ዑደትን ለመቆጣጠር FPGA ን እንጠቀማለን። የሚከተሉትን ተግባራት ተግባራዊ እናደርጋለን

(ሀ) LED ን ለመቆጣጠር በ FPGA Cyclone IV DuePrologic ላይ የግፊት ቁልፎችን ይጠቀሙ።

(ለ) ፍላሽ ኤልዲ በየጊዜው ማብራት እና ማጥፋት

የቪዲዮ ማሳያ

የላቦራቶሪ ምናሌ

ደረጃ 1 የኤሌክትሮኒክ ወረዳ ይገንቡ

ደረጃ 2 የፒን ዕቅድ አውጪውን ያረጋግጡ እና የቬሪሎግ ኮድ ያርትዑ

የፒን ዕቅድ አውጪውን ያረጋግጡ እና የቬሪሎግ ኮድን ያርትዑ
የፒን ዕቅድ አውጪውን ያረጋግጡ እና የቬሪሎግ ኮድን ያርትዑ

ደረጃ 3 የቬሪሎግ ኮድ ያርትዑ

የቬሪሎግ ኮድ ያርትዑ
የቬሪሎግ ኮድ ያርትዑ

FPGA DueProLogic ን ሲገዙ ዲቪዲ መቀበል አለብዎት። «Projects_HDL» ን ከከፈቱ በኋላ የመጀመሪያውን የኮድ ፋይል ማየት አለብዎት

የደመቀውን ኮድ ያክሉ። የ I/O ወደቦችን ይመዘግባል እና ወደቦች ቁጥሮችን ይመድባል።

የውጤት ሽቦ [7: 0] XIO_1 ፣ // XIO-D2-D9

የውጤት ሽቦ [5: 0] XIO_2 ፣ // XIO-D10-D12

የውጤት ሽቦ [5: 0] XIO_3 ፣ // XIO-D22-D29

የግብዓት ሽቦ [5: 0] XIO_4 ፣ // XIO-D30-D37

የግብዓት ሽቦ [5: 0] XIO_5 ፣ // XIO-D38-D45

የውጤት ሽቦ [4: 0] XIO_6_OUT ፣ // XIO-D46-D53

የግብዓት ሽቦ [31: 5] XIO_6 ፣ // XIO-D46-D53

የውጤት ሽቦ [2: 0] XIO_7 ፣ // XIO - D69 ፣ D70 ፣ D71 ፣ D74 ፣ D75 ፣ D76

የግብዓት ሽቦ UBA ፣ // የግፋ አዝራር መቀየሪያዎች

የግብዓት ሽቦ UBB // የግፋ አዝራር መቀየሪያዎች

XIO_1 [3] = start_stop_cntrl መድብ;

XIO_2 [1] = start_blinky መድብ; // የ LED ፍላሽ LED አብራ እና አጥፋ

XIO_2 [2] = 1'b1 መድብ; // ከፍተኛ ውጤት

XIO_2 [3] = ~ ዩባ; // የግፊት አዝራር ሀ

XIO_2 [4] = UBB መድብ; // የግፋ አዝራር ቢ

c_enable = XIO_5 [2] መድብ;

LEDExt = XIO_5 [5] ይመድቡ;

ከዚያ የመዘግየት ሰዓት ቆጣሪ ማዘጋጀት አለብን። የመጀመሪያውን የሰዓት ቆጣሪ ኮድ አስተያየት ይስጡ እና አዲስ የሰዓት ቆጣሪ ተግባር ይፃፉ

//-----------------------------------------------

// የ LED ብልጭልጭ ጅምር

//-----------------------------------------------

/*

ሁልጊዜ @(posedge CLK_66 ወይም negedge RST)

ጀምር

ከሆነ (! RST)

start_blinky <= 1'b0;

ሌላ

ጀምር

ከሆነ (control_register [7: 4]> 0)

start_blinky <= 1'b1;

ሌላ

start_blinky <= 1'b0;

አበቃ

አበቃ

*/

reg [31: 0] የቀድሞ;

የመጀመሪያ ጅምር

የቀድሞ <= 32'b0;

start_blinky <= 1'b0;

አበቃ

ሁልጊዜ @(posedge CLK_66)

ጀምር

የቀድሞ <= ex + 1'b1;

ከሆነ (ለምሳሌ> 100000000) // ብልጭታ/አጥፋ ~ 1.6 ሰከንዶች ፣ ሰዓት 66 ሜኸ

ጀምር

start_blinky <=! start_blinky;

የቀድሞ <= 32'b0;

አበቃ

አበቃ

//-----------------------------------------------

// የ LED መዘግየት ሰዓት ቆጣሪ

//-----------------------------------------------

/*

ሁልጊዜ @(posedge CLK_66 ወይም negedge RST)

ጀምር

ከሆነ (! RST)

led_delay_counter <= TIMER_LOW_LIMIT;

ሌላ

ጀምር

ከሆነ (ግዛት [SELECT_MODE])

led_delay_counter <= timer_value;

ሌላ ከሆነ ([WAIT_FOR_TIMER] ን ይግለጹ)

led_delay_counter <= led_delay_counter - 1'd1;

አበቃ

መጨረሻ*/

ደረጃ 4: የቬሪሎግ ኮድ ማጠናቀር

የቬሪሎግ ኮድ ያጠናቅሩ
የቬሪሎግ ኮድ ያጠናቅሩ
የቬሪሎግ ኮድ ያጠናቅሩ
የቬሪሎግ ኮድ ያጠናቅሩ

በኳርትስ ውስጥ “ጀምር ማጠናቀር” ን ይጫኑ ፣ የስህተት መልእክት መፈጠር የለበትም።

ስለ ብዙ ፒኖች የስህተት መልእክት ከተቀበሉ። ወደ ምደባዎች -> መሣሪያ -> የመሣሪያ እና የፒን አማራጮች -> ባለሁለት ዓላማ ፒኖች -> ተገቢውን ፒን እሴት ወደ “እንደ መደበኛ I/O ይጠቀሙ” ይሂዱ።

ከተጠናከረ በኋላ የ pof ውፅዓት ፋይልን በቀጥታ ማግኘት አለብዎት። የእርስዎ ሶፍትዌር ወቅታዊ ካልሆነ የሶፍ ፋይል ብቻ ሊያገኙ ይችላሉ። በሚሆንበት ጊዜ በኳርትስ ውስጥ “ፋይል” ን ጠቅ ያድርጉ -> “የፕሮግራም ፋይሎችን ይለውጡ”። በቀይ ሳጥኖች ምልክት የተደረገባቸውን ቅንብሮች ይለውጡ።

ደረጃ 5: እንሞክረው

ለነገሩ መስራት አለበት !!! ቢጫ LED ሁልጊዜ በርቷል። ቀይው LED ብልጭ ድርግም ይላል። አዝራሩን ቢጫኑ ሰማያዊው ኤልዲ ጠፍቷል

የሚመከር: