תוכן עניינים:

Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 שלבים
Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 שלבים

וִידֵאוֹ: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 שלבים

וִידֵאוֹ: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 שלבים
וִידֵאוֹ: 3 точки, и пищеварение станет лёгким 2024, נוֹבֶמבֶּר
Anonim
Integer_Matrix_Solver_UART_SERIAL_VHDL
Integer_Matrix_Solver_UART_SERIAL_VHDL

מדריך זה ניתן להראות לך כיצד ליצור פותר מטריצות 2 על ידי 2 באמצעות יישום מודול מסוף סידורי UART וכן מודול לפתרון מטריצות. המשתמש יוכל להזין מטריצה 2 על 2 ואז העיצוב המיושם ירוק את הפתרון למערכת הלינארית.

כדי להשתמש בקוד זה, תזדקק ל:

- לוח FPGA של Digilent Basys 3

- מחשב עם תוכנת Xilinx Vivado (מהדורת Webpack תעבוד). עבור מודול זה, השתמשנו בגרסת 2017.2.

- כבל מיקרו USB (מסוגל העברת נתונים)

מחברים: דרו מילר, EE Major, Cal Poly SLO, Sukhdeep Singh, EE Major, Cal Poly SLO Class: עיצוב דיגיטלי

- EE/CPE 133 מדריך: ג'וזף קאלנס

מקורות:

  • UART_TX, UART_RX מאת:
  • הפסקת:

פונקציה לחלוקת שני מספרים לא חתומים:

שלב 1: שלב 1: איך זה עובד

שלב 1: איך זה עובד
שלב 1: איך זה עובד
שלב 1: איך זה עובד
שלב 1: איך זה עובד

כניסות: המשתמש מכניס מערכת לינארית למסוף המחשב ולאחר מכן מודול UART ממיר אותן למערך למודול פותר המטריצות כדי לתפעל אותו. מודול UART מתממשק עם המשתמש ומאפשר לו להיכנס למטריצה המתאימה, כמו גם להנחות אותם להזין נתונים כראוי. למערכת יש גם מתג איפוס/הפעלה ממופה למתג השמאלי ביותר של לוח Basys3.

יציאות: התוצאות ממפתר המטריצות מועברות בממשק מודול UART ולאחר מכן מוצגות במסוף המחשב עם הפתרונות המופיעים על המסך. פותר המטריצות מוציא וקטורי לוגיקה סטנדרטיים לא חתומים למודול UART אשר הופך אותם ליציאות ידידותיות יותר למשתמש שהמשתמש יעריך. פותר המטריצות הנוכחי יכול להכניס מספרים עד 15 בלבד ותוצאת הפלט חייבת להיות מספר שלם נקי או שתוכנית פותר המטריצות לא מצליחה להוציא את הפתרון הנכון.

מודול "בקרה סדרתית" ברמה העליונה: המשתמש מכניס את המערכת הלינארית הרצויה שלו למודול זה באמצעות המודולים UART_TX ו- UART_RX והוא ממיר את הכניסות ממסוף המחשב למערך של וקטורי לוגיות סטנדרטיים המעובדים על ידי מודול פותר המטריצות. מודול פותר המטריצות מחזיר לאחר מכן מערך של וקטורי לוגיקה סטנדרטיים שמוצגים על המסך על ידי הממשק הטורי של UART. העברת וקבלה של נתונים באמצעות מודולי UART מתבצעת באמצעות שימוש ב- FSM ארוך מאוד במודול זה.

מודול UART_TX: המשתמש מכניס וקטור לוגי סטנדרטי של 8 ביט ואות שליחה על מנת לשלוח נתונים באמצעות ממשק ה- USB. בזמן שהוא שולח נתונים, האות TX_Active גבוה. לאחר שליחת הנתונים, האות TX_Done פועם.

מודול UART_RX: המשתמש מקבל 8 סיביות נתונים בכל פעם מממשק ה- USB. דופק מ- RX_DV הוא אינדיקציה לכך שהתקבלו נתונים וכי ניתן לקרוא את ההיגיון הווקטורי RX_Byte.

מודול פתרון מטריצות: פותר המטריצות מקבל מערך מזוהם ממודול UART המייצג את המטריצה. פותר המטריצות ממיר כל מספר במערכת הלינארית למספרים שלמים כדי להקל על הפעולה עליהם. בתוך מודול פותר המטריצות יש מספר מודולי משנה. מודול המשנה הראשון הוא inverse_matrix_1 שלוקח את המטריצה ולאחר מכן נותן את ההפוך של המטריצה הנתונה. מודול המשנה הבא הוא המכפיל המכפיל את המטריקס הכולל במטריצה ההפוכה באמצעות פעולות מטריצה סטנדרטיות. בסופו של דבר, מודול האב ממפה אותם יחד לפלט תשובה אחת בודדת.

שלב 2: שלב 2: תכנות לוח Basys 3

לאחר שרכשת את קוד המקור מלמטה, העלה אותו ללוח basys 3 כדי להשתמש בממשק.

reference.digilentinc.com/basys3/refmanual

שלב 3: שלב 3: אופן השימוש בו

השתמש בממשק טורי ב -9600 באוד על מנת לתקשר עם Basys3 UART. השתמשתי במסך ב- Linux עם הפקודה הבאה:

מסך /dev /ttyUSB1 9600

על מנת לעשות זאת ב- Linux, הייתי צריך להוסיף את המשתמש שלי לקבוצה "חיוג". ב- Windows, מרק אמור לעבוד, וב- MacOSX, תהליך זה צריך להיות דומה ללינוקס.

הפיכת המתג השמאלי ביותר למיקום ההפעלה מפעיל את פותר המטריצות. כיבויו מאפס את פותר המטריצות.

מוּמלָץ: