1 GENERATE שכפול מבניות באמצעות פקודה DFF 4 -דוגמא אוגר הזזה המורכב מ DFF תוכנית של U1 clk q d dff1 entity dff1 is port( clk,d:in bit; q:out bit ); end; architecture dff of dff1 is begin process(clk) begin if clk'event and clk='1' then q<=d; end if; end process; end dff; סיביות4 אוגר הזזה של clk U0 clk d d dff1 U1 q x0 clk d dff1 U2 q x1 clk d dff1 U3 q x2 clk q d dff1 x3 q3 q2 q1 q0 חיון אבי: ערך http://site.2all.co.il/hayun/ שכפול מבניותVHDL 2 :אם נרצה לכתוב את התוכנית ללא שכפול נכתוב את התוכנית הבאה entity shift_register3 is port( clk:in bit; d:in bit; q:out bit_vector(3 downto 0) ); end; architecture reg of shift_register3 is component dff1 port( clk,d:in bit; q:out bit ); end component; signal x:bit_vector(3 downto 0); begin u0:dff1 port map (clk=>clk,d=>d,q=>x(0)); u1:dff1 port map (clk=>clk,d=>x(0),q=>x(1)); u2:dff1 port map (clk=>clk,d=>x(1),q=>x(2)); u3:dff1 port map (clk=>clk,d=>x(2),q=>x(3)); q<=x; end reg; . q - המתחבר בסוף לX בשםsignal יש לשים לב שהוגדר שלq למוצאFF- של הd תתקבל הודעת שגיאה לגבי החיבור בין כניסהq -אם נחבר ישירות ל .האוגר אותה תוכנית ע"י שכפול entity shift_register2 is port( clk:in bit; d:in bit; q:out bit_vector(3 downto 0) ); end; architecture reg of shift_register2 is component dff1 port( clk,d:in bit; q:out bit ); end component; signal x:bit_vector(3 downto 0); חיון אבי: ערך http://site.2all.co.il/hayun/ שכפול מבניותVHDL 3 begin u0:dff1 port map (clk=>clk,d=>d,q=>x(0)); gen_reg: for i in 1 to 3 generate un:dff1 port map (clk=>clk,d=>x(i-1),q=>x(i)); end generate gen_reg; q<=x; end reg; d- לq - מ3 עד1- וכל השאר בעזרת לולאה מd - הראשון מתחבר ישירות לFF -ה if…..generate אותו תכנון עם שימוש בפקודת entity shift_register is port( clk:in bit; d:in bit; q:out bit_vector(3 downto 0) ); end; architecture reg of shift_register is component dff1 port( clk,d:in bit; q:out bit ); end component; signal x:bit_vector(3 downto 0); begin gen_reg: for i in 0 to 3 generate lsb: if i=0 generate u0:dff1 port map (clk=>clk,d=>d,q=>x(i)); end generate lsb; bits: if i>0 generate un:dff1 port map (clk=>clk,d=>x(i-1),q=>x(i)); end generate bits; end generate gen_reg; q<=x; end reg; חיון אבי: ערך http://site.2all.co.il/hayun/ שכפול מבניותVHDL 4 Generic סיביות ע"י שימוש במשתנהn שכפול כללי עבור entity shift_generic is generic (n_bit:integer:=8); -- 8 bit port( clk:in bit; d:in bit; q:out bit_vector(n_bit-1 downto 0) ); end; architecture reg of shift_generic is component dff1 port( clk,d:in bit; q:out bit ); end component; signal x:bit_vector(n_bit-1 downto 0); begin u0:dff1 port map (clk=>clk,d=>d,q=>x(0)); gen_reg: for i in 1 to (n_bit-1) generate un:dff1 port map (clk=>clk,d=>x(i-1),q=>x(i)); end generate gen_reg; q<=x; end reg; חיון אבי: ערך http://site.2all.co.il/hayun/ שכפול מבניותVHDL
© Copyright 2024