מה זה VHDL ולמה למתחילים ללמוד את זה?

VHDL מייצג את מעגל ה-High-Speed VOHSIC Hardware Languageeur Language Languagesual LanguageFLT:1, שבו VHSIC עצמו עומד על עיגול משולב מאוד גבוה-Speed.It הוא שפה מאוד, במקביל, וניתנת למאורע המשמש למודל מערכות דיגיטליות מהרמה האלגוריתמית המשולבת של ASSIC למטה לרמה של התוכנה הקונבנציונאלית, אשר מבצעת הוראות ברצף ליניארי, VHDL מתארת התנהגות שמקבילה (A) ו-Fireative Gate-Fireative System for a סימולציה (A) ו-Fireative System for a מתודולוגית) ו-Fireative System for the מתודולוגית (A.

למתחילים, עקומת הלמידה יכולה להרגיש תלולה כי VHDL סינטקס הוא פועל בהשוואה לשפות תוכנה מודרניות.עם זאת, כוחות המבנה הקפדניים שלה אתה לחשוב כמו מעצב חומרה - כל אות, נמל, ותהליך מייצג קשרים פיזיים אמיתיים ושערים לוגיים.המאסטר את היסודות של FLT:0VHDL מס ומבנה 1LT) נותן לך בסיס מוצק עבור כל שילוב פשוט למעבדים מורכבים.

המונחים: a Structured Language

(ב) ⁇ (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇

מילות מפתח שמורות ו- Identifiers

(ו) מגדיר קבוצה של מילות מפתח שמורות שלא ניתן להשתמש בהן כמזהה למשתמש (למשל, ⁇ :0entity, אדריכלות, אות, נמל, התחלה, תהליך, תפקוד, משתנה, קבוע, אם כן, במקרה אחר, אם כי, בעוד ש-FLT:1) יש להתחיל עם מכתב, ויכול להכיל אותיות, ספרות, ומדגישים, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, כך, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, כך, כך, כך, כך, כך, כך, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, כך, כך, כך, אם כן, אם כן, אם כן, כך, כך, אם

הערות

הערות ב-VHDL אינן ניתנות לשתי מזמורים רצופים (FLT:6 ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇

הצהרות ו- Semicolons

(ב) כל הצהרה ב-VHDL מסתיימת עם חציקולון (FLT9) כולל הצהרות של ישויות, גופים ארכיטקטורים, משימות אות, הצהרות תהליך, ומשימות אות מקבילות (העברת חציון) היא אחת השגיאות הנפוצות ביותר, גם VHDL משתמשת ב- 12 מעלות (FLT:0double dashesFLT:1 for Notes and F:2, 3 ).

היתרונות העיקריים של VHDL: Entity, Architecture, Signals ו- Processes

(ב) כדי לתכנן כל דבר ב-VHDL, עליך להבין ארבעה אבני בניין יסודיים: (FLT:0entitiesssph1, FLT:2architecturessFLT 3:, 4 חתימות:5, ו-FLT:6 מעבדים 6מעבדים FLT 7 כל עיצוב הוא למעשה קופסה שחורה (entity) עם תיאור פנימי מפורט (קווי מתאר) ושילוב משותף (קווי לוגיקה) לשימושים) לרכיבים ותהליכי תיבות של לוגיקה.

ארכיון תגיות: The Black Box Interface

[01:0] ,[דרוש מקור]], [ה], [ה]], [ה], [ה],] ה'[ה]]'[ה]']'[ה']'[ה']'[ה']'[ה']'[ה']'[ה']'[ה']'']'[ה']'[ה'[ה']']']'[ה'[ה']']'[ה'[ה'[ה'[ה'[ה'[ה']'[ה']'[ה']'[ה'[ה']'[ה'[ה']']']'[ה']']'[ה'[ה'[ה'[ה']']']']'[ה'[ה'[ה']'[ה']'[ה']']']']'[ה']']'[ה'[ה'[ה'[ה']'[ה']']'[ה'[ה'[ה'[ה'[ה'

entity and_gate is
 port (
 a : in std_logic;
 b : in std_logic;
 y : out std_logic
 );
end entity and_gate;

(בדוגמה זו, הישות (FLT:14) יש שלושה נמלים: שני קלטות (FLT:15, FLT:16), ופלט אחד (FLT:17), כל סוג של סוג תפוצה 18 (FLT:19 סוג הוא מערכת לוגיקה סטנדרטית 9 ערכית המוגדרת בחבילה של LT:20.

נטיות יכולות לכלול גם את ה-FLT:0 (Gerericssherph1) כדי להפוך את פרמטר העיצוב לפרמטר.לדוגמה, תוכל להגדיר גנריתFLT:25 ששולטת ברוח האוטובוס.

אדריכלות: The Internal Implementation

(ב) [17] , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇

האדריכלות מתחילה עם מילת המפתח (FLT:26), ואחריו שם האדריכלות, מילת המפתח (FLT:27), שם הישות, ו-FLT:28 ואז לבוא סעיפים הצהרה (לסימנים, קבועים, רכיבים) ולבסוף מילת מפתח FLT:29 ואחריו ההצהרות הנוכחיות.

architecture behavioral of and_gate is
begin
 y <= a and b;
end architecture behavioral;

כאן, המשימה היחידה של אות במקביל לעדכון (FLT:33 ), שמניעה את התפוקה באופן קבוע, כי VHDL הוא קבוע, קו זה פועל לנצח, עדכון 34 מתי FLT:35 או FLT:36 שינויים.

תגית: The Wires That Connect Everything

(ב) [ה]ב]: [ה] [ה] [ה]]] [ה]]] [ה]], [ה]], [ה] [ה][ה]]]]]]], [ה'[ה]]'[ה']'[ה']'[ה']'[ה']'[ה']'[ה']'[ה'[ה']']'[ה']']'[ה'[ה']'[ה'[ה'[ה'[ה'[ה'[ה'[ה']']'[ה'[ה']'[ה'[ה']']']'[ה']']'[ה']'[ה'[ה']']']']']'[ה'[ה']']'[ה'[ה']'[ה']']'[ה'[ה']'[ה'[ה'[ה'[ה']']']']']'[ה'[ה'[ה'[ה'[ה

signal internal_net : std_logic;
…
internal_net <= a and b; -- concurrent assignment
y <= internal_net;

(ב) , (ב) , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇

המונחים: Describing Sequential behaviour

(ב) [17] , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇

ניתן לכתוב ההרחבה D-type עם איפוס סינכרוני כמו:

process (clk, rst) is
begin
 if rst = '1' then
 q <= '0';
 elsif rising_edge(clk) then
 q <= d;
 end if;
end process;

(ב) רשימת הרגישות (FLT:54) מספרת לסימולטור להתעורר בתהליך זה בכל פעם ש-FLT:55 או FLT:56 שינויים.בתוך התהליך, הטבע הטמון פירושו שהצהרות מובחנות על מנת - אך משימות האות עדיין משתמשות ב-FLT:57 ועדכון לאחר תהליך ההשעות, ולכן תהליך דוגמנות דורש טיפול לא מצריך טיפול לא מגובש.

מבנה VHDL: עיצוב שלם

בואו נוסיף הכל יחד עם דוגמא מפורטת יותר: מספר של 2 עד-1 (MUX) עם קו בחירה. עיצוב זה מראה כיצד להשתמש בגופים, אדריכלות, אותות ותהליכים בקובץ יחיד.ה- MUX בוחר בין שתי קלטות 8 סיביות בהתבסס על קו בחירה יחיד.

-- 8-bit 2-to-1 Multiplexer
library ieee;
use ieee.std_logic_1164.all;

entity mux2to1 is
 port (
 a, b : in std_logic_vector(7 downto 0);
 sel : in std_logic;
 y : out std_logic_vector(7 downto 0)
 );
end entity mux2to1;

architecture behavioral of mux2to1 is
begin
 process (a, b, sel) is
 begin
 if sel = '0' then
 y <= a;
 else
 y <= b;
 end if;
 end process;
end architecture behavioral;

קוד זה מציג כמה מושגים חדשים:

  • (ב) ויקרא י"א: "וְהִיא וּכְלֹאמַר: (ב) וְאֶתָּבְתָּבְתָּבְהִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתִיתָּב" (ב"ב"ב"ב, כ"ב"ב"ב"ב"ב, כ"ב"ב"ב, כ"ב"ב"ב"ב)
  • (ב) ויקרא י"א: "ה' (ב)" (בראשית כ"ד): "ה' (ב')" (ב)"ב)" (בראשית כ"ד, ט"ד): "ה') "ה'והוא ה'"ה' (בראשית כ"ד).
  • (ב) ,0) , ⁇ (ב) , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • (ב) אם נאמר בפרשת [[המאה ה-1]]: [[1924]], [[1924]], [[1924]]]], [[1924]]]], [[1924]]]], [[1924]]]]]], [[1924]]]]]]]], [[1924]]]]]]]]]]

דוגמה זו היא סינתזזה (ניתן להפוך לחומרה אמיתית) כי ההיגיון הוא שילוב בלבד.התהליך מתאר MUX, שכל כלי הסינתזה מזהה.

מפתח VHDL Syntax כללים שכל מתחיל חייב לדעת

מעבר לרכיבים הבסיסיים, ל-VHDL יש כמה כללים סינקטקטיים שתופסים את ה-Newcomers מחוץ לשומר. Mastering אותם מוקדם לחסוך שעות של bugging.

1 צמיגים חזקים

(ב) ויקרא י"א): "וְהִיא אִתָּבְהִיא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא

ההבדל בין השנים [[1976]] ו[[1924]]

(ב) ניתן להשתמש ב-FLT:0) בסימן הקבע (ב) 1 (בשיתוף פעולה) עם רצף:78

y <= a when sel = '0' else b;

זה שווה ערך ל- MUX מבוסס התהליך הקודם, אך אינו קיים – זוהי הצהרה חד-משמעית אחת. בגיןנרים מבלבלת לעיתים קרובות בין FLT:80 (שמדה) עם FLT:81 (נוכחית) ככלל: FLT:82 מותר רק בתוך תהליכים, פונקציות והליכים; FLT:83 משמש לסימן מקביל.

אות לעומת התפטרות משתנה

בתוך תהליך, ניתן להכריז על כך:0 (במסגרתו של דבר) 1:1 באמצעות שימוש ב-FLT:84 מילת מפתח. Variables מוקצה עם FLT:85 ועדכון מיידי (עם אותה מחזור סימולציה) זה מנוגד לסימנים המשתמשים ב-FLT:86 ועדכון רק לאחר העיכובים.

process (clk) is
 variable temp : std_logic;
begin
 if rising_edge(clk) then
 temp := a and b; -- variable updates immediately
 y <= temp; -- signal updates after process suspension
 end if;
end process;

השעון חושף את Idiom

(ב) כדי לדגום (בשיתוף) (בשיתוף) יש לזהות את העליה או הנפילה של השעון (הצורה הסטנדרטית היא להשתמש ב-FLT:88 או FLT:89 מתוך חבילת ה- 90, אשר מטפל נכון בערכים X ו- Z.FLT:0) אין אף פעםFLT:1 להשתמש ב-LT:91 - זה יכול להתנהג אחרת בסימולציה לעומת סימולציה נגד סינתזה.

5.התראות ורשימות רגישות

תהליך יכול להיות (FLT:0) רשימת רגישות של ההרחבה 1 (או מכיל את ההצהרות:92), אך לא שניהם. עבור סינתזה, רשימות רגישות הן הנורמה.הרשימה חייבת לכלול כל אות קורא בתוך התהליך (אלא אם כן זה תהליך מוקרן, שבו במקרה רק שעון ולאור או רצף / שעה אינם ניתנים לסימן של רגישות, אלא אם כן, אם כן, אם כן, אם כן, ניתן לעדכן את הסימולציה, אך לא תסבירו, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, אם כן, ייתכן שעדיין לא ניתן לעדכן את הדמיון שעדיין לא ניתן לעדכן את הדמית הדמית הדמית הדמייתחולל שינוי הדמית הדמית הסימולציה, רק שעון, רק שעון, ורק שעון, או לא ניתן לעדכן, או לא ניתן לעדכן, ורק שעון, או לא ניתן לעדכן אותו, ורק שעון ותיקון, לא ניתן לעדכן אותו הדבר אפשרי, ולא ניתן לעדכן

6.Port Map and Component Imiation

כאשר אתה בונה עיצובים היררכיים, אתה מידידיט מרכיבים נמוכים יותר באמצעות FPLT:93 הסינמס מחבר את האותות הפנימיים לנמלי הישות.

u_mux : entity work.mux2to1
 port map (
 a => data_a,
 b => data_b,
 sel => select_line,
 y => mux_out
 );

ה-FLT:95 נקרא "מפעיל המיפוי של המפה" (השמאל) הוא שם הנמל של הישות המתעתקת, והצד הימני הוא האות המקומי.You יכול גם להשתמש במיפוי עמדה, אך השם מיפוי הוא בטוח יותר וניתן לקריאה יותר.

טכניקות ביניים למתחילים לחקור

לאחר נוח עם היסודות, אתה יכול להתחיל לחקור מבנים נוספים של VHDL אשר הופכים עיצובים חזקים יותר וניתן לשנות אותם.

שימוש ב Generics for Parameterized Designs

(FLT:0)GenericsigsFLT:1 מאפשר לך להעביר קבועים לתוך ישות, מה שהופך את העיצוב סקאפי ללא קוד כתב מחדש.

entity generic_mux is
 generic (
 WIDTH : positive := 8
 );
 port (
 a, b : in std_logic_vector(WIDTH-1 downto 0);
 sel : in std_logic;
 y : out std_logic_vector(WIDTH-1 downto 0)
 );
end entity;

כאשר אתה יכול להתגבר על ה-FLT:97 דרך המפה הגנרית:

generic map (WIDTH => 16)

הבנה של הצהרות קונדומים וקיימות

ל- VHDL יש שתי קטגוריות עיקריות של הצהרות:

  • (במקבילה:0) הצהרות נוכחיות של ההרחבה: הוצאה להורג בו זמנית, במקביל, הן כוללות הקצאות אות פשוטות (ראה FLT:99), הקצאות אות מותניות (ראה:100) , ניתנות רכיב מיידיות, ומייצרות הצהרות.
  • (ב) ויקרא י"א: "הוציאו להורג אחד לאחר, בתוך תהליך, תפקוד או הליך, הם כוללים את FLT:101, FLT:102, 103," (ב)

מתחילים חושבים לעתים קרובות בטעות כי סדר ההצהרות הנדוניות חשוב - זה לא.הסימולטור קובע את סדר ביצוע המבוסס על תלות בסימן, לא על הסדר הטקסטואלי.

מודלים של מכונות ממשלתיות (FSMs)

FSMs הם יישום קלאסי של תהליכים VHDL.מכונת מור פשוטה משתמשת בשני תהליכים: אחד עבור ההיגיון הבא של המדינה (בינלאומי) ואחד עבור המדינה רישום (שמדהים).

architecture rtl of fsm is
 type state_type is (idle, run, done);
 signal state, next_state : state_type;
begin
 -- Sequential register
 process (clk, rst) is
 begin
 if rst = '1' then
 state <= idle;
 elsif rising_edge(clk) then
 state <= next_state;
 end if;
 end process;

 -- Next-state logic
 process (state, input) is
 begin
 next_state <= state; -- default to prevent latches
 case state is
 when idle =>
 if input = '1' then
 next_state <= run;
 end if;
 when run =>
 if input = '0' then
 next_state <= done;
 end if;
 when done =>
 next_state <= idle;
 end case;
 end process;
end architecture;

דפוס זה נפוץ מאוד בעיצובים אמיתיים, שימו לב ל-FLT:0default TaskFLT:1 (FLT:106) - זה נמנע מלהיבים על ידי הבטחת כל אות מקבל ערך בכל ענפי המקרה.

מתחילים מתחילים ממזרים וכיצד להימנע מהם

גם לאחר לימוד הסינטקס, מתחילים לעתים קרובות לטייל על נושאים אלה.להיות מודע להם יהיה חלק עקומת הלמידה שלך.

  • (ב) ,0) ל[[1924]], [[1924]], [[1924]]]], [[1924]]]]]], [[1924]]]]]], [[1924]]]]]]]], [[1924]]]]]]]], [[1924]]]]]]]]]]]], [[1924]]]]]]]]
  • (ב) [17] ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • (ב) [ה]] לא כפלה של אותות או משתנים: בסימולציה, ערכי קדם-החלמה ראשוניים הם FLT:113 (לא-מאומתים) עבור FLT:114 להשתמש במערכי ברירת מחדל מפורשים (למשל, FLT:115).
  • (ב) [ה]הההעברה של ה-VHDL אינה מאפשרת מספר רב של משימות אות, אלא אם כן הם נפתרים (כמו FLT:116), אך גם אז, סכסוכים מסוכנים.
  • (ב) [ה]: [ה] [ה]] [ה]] [ה]: [ה] [ה] [ה]] [ה]]] [ה]] [ה]]]] [ההההההההההההההההההההההההההההההההההההההההההתורה [ה] [ה]] [ה]] [ה]] [ה] [ה] [ה] [ה] [ה] [ה] [ה]] [ה]] [ה],],],],], [הההה],],],], [ההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה

כלים ומשאבים מומלצים ל-VHDL

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

  • (ב) [15] [17] , [17] ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • (FLT:0) FPGA ספקים כלים FLT:1: Xilinx Vivado, Intel Quartus Prime, או Lattice Diamond.הם כוללים סימולטורים וכלים סינתזזה.
  • (ב) ,0) עורך קונסולת ה-1:2EDA PlaygroundFLT 3 מאפשר לך לכתוב, לדמות ולשתף קוד VHDL בדפדפן ללא התקנת שום דבר.
  • (FLT:0)BookssigFLT:1: "VHDL על ידי דוגמא" על ידי P. P. Chuang, "Circuit Design with VHDL" מאת וולני פדרוני, ו "Fundamentals of Digital Logic with VHDL Design" מאת סטיבן בראון וזבונקו ורסיצ'י.
  • (FLT:0) Reference DocumentsFLT:1: תקן IEEE 1076-2008 זמין באינטרנט, אם כי צפוף למתחילים.המדריך התקנים אוטומציה תוכנה" דף מספק גישה חופשית למדריך ההתייחסות לשפה.

התחל עם מעגלים משולבים קטנים כמו ושערים, תוספות, ו- מרובותxers, ואז לעבור מעגלים סינטיאליים: ספין-flops, מחסומים, רישומים משמרות. Simulate כל צעד והתבונן בגלימות.פעם נוח, נסה ליישם משדר פשוט UART או דלפק בינארי על לוח FPGA אמיתי (כמו Terasic DE10-Lite או Digilenty 3).

מסקנה: לקחת את השלבים הבאים במסע VHDL שלך

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

זכור כי VHDL הוא משמעת כי תגמול סבלנות ופרקטיקה שיטתית. לכתוב קוד, לדמות אותו, לסנתז אותו, ו debug זה. להסתכל על הצופים גלפור להבין עיכובים ודמים.עם הזמן, הסינר יהיה טבע שני, ואתה תתחיל לחשוב במונחים של חומרה מקבילה ולא תוכנה קוונטית.שלב את כישורי VHDL שלך עם הבנה מוצקה של לוגיקה דיגיטלית (Boork-Fra) לפתק, עיצוב מלא של תזמון, תזמון מודרני.

הישארו סקרנים, המשיכו להתנסות, ואל תהססו להתייעץ עם הקהילה הגוברת ומשאבים מקוונים.עם מאמץ עקבי, לשלוט ביסודות של סינתזה VHDL ומבנה יהיה המעיין לנושאים מתקדמים כמו צינורות, ממשקים מהירים במהירות גבוהה, עיצוב מערכת-על-צ'יפ.