هل يمكنك مساعدتي من فضلك مع برنامج إتش دي إل الفقراء

N

nkarmstrong

Guest
مرحبا ، والجميع ، وأنا مبتدئا مع إتش دي إل ، أنا أكتب برنامج vhld مع الهدف من ذلك هو :
لمواجهة تهم من 0 إلى 255 ، في هذه العملية ، "اشارة sigin" ستتحول مرتفعة أو منخفضة
عشوائي (نقطة واحدة بل هي ثابتة) ، وعندما يتحول عالية ، وسوف صفيف علما بانخفاض أضعاف هذا العدد مكافحة occers
العداد سوف تذهب عشرين مرة ، ثم سيقوم البرنامج مقارنة للحصول على مرات أكثر من عدد مضادة.
هذا البرنامج هو على النحو التالي :
IEEE المكتبة ؛
IEEE.STD_LOGIC_1164.ALL استخدام ؛
IEEE.STD_LOGIC_ARITH.ALL استخدام ؛
IEEE.STD_LOGIC_UNSIGNED.ALL استخدام ؛
countree الكيان
(الميناء
الساعة : في std_logic ؛
الإحصاءات البيئية : في std_logic ؛
Sigin : في std_logic ؛
المسافة : خارج std_logic_vector (7 downto 0) ؛
ارقام اخرى : من std_logic_vector (4 downto 0) ؛
MeuOk : خارج std_logic
(؛)
countree الغاية ؛
العمارة السلوكية هو من countree

إشارة العداد : std_logic_vector (7 downto 0) ؛
ط إشارة : std_logic_vector (4 downto 0) ؛
TemDis إشارة : std_logic_vector (7 downto 0) ؛
إشارة TemNum : std_logic_vector (4 downto 0) ؛
إشارة TemMeuOk : std_logic ؛
كلمة الفرعي هو std_logic_vector (4 downto 0) ؛
نوع الذاكرة هي مجموعة (0 إلى 255) للكلمة ؛
إشارة إلى : الذاكرة ؛

يبدأ
عملية (الإحصاءات البيئية ، ط ، Sigin ، العداد)
يبدأ

إذا كان ((بيئة = '0') ثم
ط <= "00000" ؛
TemDis <= "00000000" ؛
TemNum <= "00000" ؛
مكافحة <= (الآخرين => '0') ؛
TemMeuOk <= '0' ؛

ي في ل0 إلى 255 حلقة

(أ) (ي) <= (الآخرين => '0') ؛

حلقة الغاية ؛

elsif (الإحصاءات البيئية = '1' وط < "10100" وSigin = '1') ثم

حالة العداد

عندما "00000000" => (أ) (0) <= أ (0) '1' ؛
عندما "00000001" => (أ) (1) <= أ (1) '1' ؛
عندما "00000010" => (أ) (2) <= أ (2) '1' ؛
عندما "00000011" => (أ) (3) <= (أ) (3) '1' ؛
عندما "00000100" => (أ) (4) <= (أ) (4) '1' ؛
عندما "00000101" => (أ) (5) <= أ (5) '1' ؛
عندما "00000110" => (أ) (6) <= (أ) (6) '1' ؛
عندما "00000111" => (أ) (7) <= أ (7) '1' ؛
عندما "00001000" => أ)

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="هادئ" border="0" />

<= أ)

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="هادئ" border="0" />

'1' ؛
عندما "00001001" => (أ) (9) <= أ (9) '1' ؛
عندما "00001010" => (أ) (10) <= أ (10) '1' ؛
عندما "00001011" => (أ) (11) <= (أ) (11) '1' ؛
عندما "00001100" => (أ) (12) <= (أ) (12) '1' ؛
عندما "00001101" => (أ) (13) <= أ (13) '1' ؛
عندما "00001110" => (أ) (14) <= (أ) (14) '1' ؛
عندما "00001111" => (أ) (15) <= (أ) (15) '1' ؛
عندما "00010000" => (أ) (16) <= (أ) (16) '1' ؛
عندما "00010001" => (أ) (17) <= (أ) (17) '1' ؛
عندما "00010010" => (أ) (1

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="هادئ" border="0" />

<= أ (1

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="هادئ" border="0" />

'1' ؛
عندما "00010011" => (أ) (19) <= (أ) (19) '1' ؛
عندما "00010100" => (أ) (20) <= (أ) (20) '1' ؛
عندما "00010101" => (أ) (21) <= (أ) (21) '1' ؛
عندما "00010110" => (أ) (22) <= (أ) (22) '1' ؛
عندما "00010111" => (أ) (23) <= (أ) (23) '1' ؛
عندما "00011000" => (أ) (24) <= (أ) (24) '1' ؛
عندما "00011001" => (أ) (25) <= (أ) (25) '1' ؛
عندما "00011010" => (أ) (26) <= (أ) (26) '1' ؛
عندما "00011011" => (أ) (27) <= أ (27) '1' ؛
عندما "00011100" => (أ) (2

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="هادئ" border="0" />

<= (أ) (2

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="هادئ" border="0" />

'1' ؛
عندما "00011101" => (أ) (29) <= (أ) (29) '1' ؛
عندما "00011110" => (أ) (30) <= (أ) (30) '1' ؛
عندما "00011111" => (أ) (31) <= (أ) (31) '1' ؛
عندما "00100000" => (أ) (32) <= (أ) (32) '1' ؛
عندما "00100001" => (أ) (33) <= (أ) (33) '1' ؛
عندما "00100010" => (أ) (34) <= أ (34) '1' ؛
عندما "00100011" => (أ) (35) <= (أ) (35) '1' ؛
عندما "00100100" => (أ) (36) <= (أ) (36) '1' ؛
عندما "00100101" => (أ) (37) <= (أ) (37) '1' ؛
عندما "00100110" => (أ) (3

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="هادئ" border="0" />

<= (أ) (3

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="هادئ" border="0" />

'1' ؛
عندما "00100111" => (أ) (39) <= (أ) (39) '1' ؛
عندما "00101000" => (أ) (40) <= (أ) (40) '1' ؛
عندما "00101001" => (أ) (41) <= (أ) (41) '1' ؛
عندما "00101010" => (أ) (42) <= (أ) (42) '1' ؛
عندما "00101011" => (أ) (43) <= (أ) (43) '1' ؛
عندما "00101100" => (أ) (44) <= (أ) (44) '1' ؛
عندما "00101101" => (أ) (45) <= (أ) (45) '1' ؛
عندما "00101110" => (أ) (46) <= (أ) (46) '1' ؛
عندما "00101111" => (أ) (47) <= (أ) (47) '1' ؛
عندما "00110000" => (أ) (4

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="هادئ" border="0" />

<= (أ) (4

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="هادئ" border="0" />

'1' ؛
عندما "00110001" => (أ) (49) <= (أ) (49) '1' ؛
عندما "00110010" => (أ) (50) <= (أ) (50) '1' ؛
عندما "00110011" => (أ) (51) <= (أ) (51) '1' ؛
عندما "00110100" => (أ) (52) <= (أ) (52) '1' ؛
عندما "00110101" => (أ) (53) <= (أ) (53) '1' ؛
عندما "00110110" => (أ) (54) <= (أ) (54) '1' ؛
عندما "00110111" => (أ) (55) <= (أ) (55) '1' ؛
عندما "00111000" => (أ) (56) <= (أ) (56) '1' ؛
عندما "00111001" => (أ) (57) <= (أ) (57) '1' ؛
عندما "00111010" => (أ) (5

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="هادئ" border="0" />

<= (أ) (5

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="هادئ" border="0" />

'1' ؛
عندما "00111011" => (أ) (59) <= (أ) (59) '1' ؛
عندما "00111100" => (أ) (60) <= (أ) (60) '1' ؛
عندما "00111101" => (أ) (61) <= (أ) (61) '1' ؛
عندما "00111110" => (أ) (62) <= (أ) (62) '1' ؛
عندما "00111111" => (أ) (63) <= (أ) (63) '1' ؛
عندما "01000000" => (أ) (64) <= (أ) (64) '1' ؛
عندما "01000001" => (أ) (65) <= (أ) (65) '1' ؛
عندما "01000010" => (أ) (66) <= (أ) (66) '1' ؛
عندما "01000011" => (أ) (67) <= (أ) (67) '1' ؛
عندما "01000100" => (أ) (6

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="هادئ" border="0" />

<= (أ) (6

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="هادئ" border="0" />

'1' ؛
عندما "01000101" => (أ) (69) <= (أ) (69) '1' ؛
عندما "01000110" => (أ) (70) <= (أ) (70) '1' ؛
عندما "01000111" => (أ) (71) <= (أ) (71) '1' ؛
عندما "01001000" => (أ) (72) <= (أ) (72) '1' ؛
عندما "01001001" => (أ) (73) <= (أ) (73) '1' ؛
عندما "01001010" => (أ) (74) <= (أ) (74) '1' ؛
عندما "01001011" => (أ) (75) <= (أ) (75) '1' ؛
عندما "01001100" => (أ) (76) <= (أ) (76) '1' ؛
عندما "01001101" => (أ) (77) <= (أ) (77) '1' ؛
عندما "01001110" => (أ) (7

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="هادئ" border="0" />

<= (أ) (7

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="هادئ" border="0" />

'1' ؛
عندما "01001111" => (أ) (79) <= (أ) (79) '1' ؛
عندما "01010000" => (أ) (80) <= (أ) (80) '1' ؛
عندما "01010001" => (أ) (81) <= (أ) (81) '1' ؛
عندما "01010010" => (أ) (82) <= (أ) (82) '1' ؛
عندما "01010011" => (أ) (83) <= (أ) (83) '1' ؛
عندما "01010100" => (أ) (84) <= (أ) (84) '1' ؛
عندما "01010101" => (أ) (85) <= (أ) (85) '1' ؛
عندما "01010110" => (أ) (86) <= (أ) (86) '1' ؛
عندما "01010111" => (أ) (87) <= (أ) (87) '1' ؛
عندما "01011000" => (أ) (8

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="هادئ" border="0" />

<= (أ) (8

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="هادئ" border="0" />

'1' ؛
عندما "01011001" => (أ) (89) <= (أ) (89) '1' ؛
عندما "01011010" => (أ) (90) <= (أ) (90) '1' ؛
عندما "01011011" => (أ) (91) <= (أ) (91) '1' ؛
عندما "01011100" => (أ) (92) <= (أ) (92) '1' ؛
عندما "01011101" => (أ) (93) <= (أ) (93) '1' ؛
عندما "01011110" => (أ) (94) <= (أ) (94) '1' ؛
عندما "01011111" => (أ) (95) <= (أ) (95) '1' ؛
عندما "01100000" => (أ) (96) <= (أ) (96) '1' ؛
عندما "01100001" => (أ) (97) <= (أ) (97) '1' ؛
عندما "01100010" => (أ) (9

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="هادئ" border="0" />

<= (أ) (9

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="هادئ" border="0" />

'1' ؛
عندما "01100011" => (أ) (99) <= (أ) (99) '1' ؛
عندما "01100100" => (أ) (100) <= (أ) (100) '1' ؛
عندما "01100101" => (أ) (101) <= (أ) (101) '1' ؛
عندما "01100110" => (أ) (102) <= (أ) (102) '1' ؛
عندما "01100111" => (أ) (103) <= (أ) (103) '1' ؛
عندما "01101000" => (أ) (104) <= (أ) (104) '1' ؛
عندما "01101001" => (أ) (105) <= (أ) (105) '1' ؛
عندما "01101010" => (أ) (106) <= (أ) (106) '1' ؛
عندما "01101011" => (أ) 107 () <= (أ) (107) '1' ؛
عندما "01101100" => (أ) (108) <= (أ) (108) '1' ؛
عندما "01101101" => (أ) (109) <= (أ) (109) '1' ؛
عندما "01101110" => (أ) (110) <= (أ) (110) '1' ؛
عندما "01101111" => (أ) (111) <= (أ) (111) '1' ؛
عندما "01110000" => (أ) (112) <= (أ) (112) '1' ؛
عندما "01110001" => (أ) (113) <= (أ) (113) '1' ؛
عندما "01110010" => (أ) (114) <= (أ) (114) '1' ؛
عندما "01110011" => (أ) (115) <= (أ) (115) '1' ؛
عندما "01110100" => (أ) (116) <= (أ) (116) '1' ؛
عندما "01110101" => (أ) (117) <= (أ) (117) '1' ؛
عندما "01110110" => (أ) (118) <= (أ) (118) '1' ؛
عندما "01110111" => (أ) (119) <= (أ) (119) '1' ؛
عندما "01111000" => (أ) (120) <= (أ) (120) '1' ؛
عندما "01111001" => (أ) (121) <= (أ) (121) '1' ؛
عندما "01111010" => (أ) (122) <= (أ) (122) '1' ؛
عندما "01111011" => (أ) (123) <= (أ) (123) '1' ؛
عندما "01111100" => (أ) (124) <= (أ) (124) '1' ؛
عندما "01111101" => (أ) (125) <= (أ) (125) '1' ؛
عندما "01111110" => (أ) (126) <= (أ) (126) '1' ؛
عندما "01111111" => (أ) (127) <= (أ) (127) '1' ؛
عندما "10000000" => (أ) (128) <= (أ) (128) '1' ؛
عندما "10000001" => (أ) (129) <= (أ) (129) '1' ؛
عندما "10000010" => (أ) (130) <= (أ) (130) '1' ؛
عندما "10000011" => (أ) (131) <= (أ) (131) '1' ؛
عندما "10000100" => (أ) (132) <= (أ) (132) '1' ؛
عندما "10000101" => (أ) (133) <= (أ) (133) '1' ؛
عندما "10000110" => (أ) (134) <= (أ) (134) '1' ؛
عندما "10000111" => (أ) (135) <= (أ) (135) '1' ؛
عندما "10001000" => (أ) (136) <= (أ) (136) '1' ؛
عندما "10001001" => (أ) (137) <= (أ) (137) '1' ؛
عندما "10001010" => (أ) (138) <= (أ) (138) '1' ؛
عندما "10001011" => (أ) (139) <= (أ) (139) '1' ؛
عندما "10001100" => (أ) (140) <= (أ) (140) '1' ؛
عندما "10001101" => (أ) (141) <= (أ) (141) '1' ؛
عندما "10001110" => (أ) (142) <= (أ) (142) '1' ؛
عندما "10001111" => (أ) (143) <= (أ) (143) '1' ؛
عندما "10010000" => (أ) (144) <= (أ) (144) '1' ؛
عندما "10010001" => (أ) (145) <= (أ) (145) '1' ؛
عندما "10010010" => (أ) (146) <= (أ) (146) '1' ؛
عندما "10010011" => (أ) (147) <= (أ) (147) '1' ؛
عندما "10010100" => (أ) (148) <= أ (148) '1' ؛
عندما "10010101" => (أ) (149) <= (أ) (149) '1' ؛
عندما "10010110" => (أ) (150) <= (أ) (150) '1' ؛
عندما "10010111" => (أ) (151) <= (أ) (151) '1' ؛
عندما "10011000" => (أ) (152) <= (أ) (152) '1' ؛
عندما "10011001" => (أ) (153) <= (أ) (153) '1' ؛
عندما "10011010" => (أ) (154) <= (أ) (154) '1' ؛
عندما "10011011" => (أ) (155) <= (أ) (155) '1' ؛
عندما "10011100" => (أ) (156) <= (أ) (156) '1' ؛
عندما "10011101" => (أ) (157) <= (أ) (157) '1' ؛
عندما "10011110" => (أ) (158) <= (أ) (158) '1' ؛
عندما "10011111" => (أ) (159) <= (أ) (159) '1' ؛
عندما "10100000" => (أ) (160) <= (أ) (160) '1' ؛
عندما "10100001" => (أ) (161) <= (أ) (161) '1' ؛
عندما "10100010" => (أ) (162) <= (أ) (162) '1' ؛
عندما "10100011" => (أ) (163) <= (أ) (163) '1' ؛
عندما "10100100" => (أ) (164) <= (أ) (164) '1' ؛
عندما "10100101" => (أ) (165) <= (أ) (165) '1' ؛
عندما "10100110" => (أ) (166) <= (أ) (166) '1' ؛
عندما "10100111" => (أ) (167) <= (أ) (167) '1' ؛
عندما "10101000" => (أ) (168) <= (أ) (168) '1' ؛
عندما "10101001" => (أ) (169) <= (أ) (169) '1' ؛
عندما "10101010" => (أ) (170) <= (أ) (170) '1' ؛
عندما "10101011" => (أ) (171) <= (أ) (171) '1' ؛
عندما "10101100" => (أ) (172) <= (أ) (172) '1' ؛
عندما "10101101" => (أ) (173) <= (أ) (173) '1' ؛
عندما "10101110" => (أ) (174) <= (أ) (174) '1' ؛
عندما "10101111" => (أ) (175) <= (أ) (175) '1' ؛
عندما "10110000" => (أ) (176) <= (أ) (176) '1' ؛
عندما "10110001" => (أ) (177) <= (أ) (177) '1' ؛
عندما "10110010" => (أ) (178) <= (أ) (178) '1' ؛
عندما "10110011" => (أ) (179) <= (أ) (179) '1' ؛
عندما "10110100" => (أ) (180) <= (أ) (180) '1' ؛
عندما "10110101" => (أ) (181) <= (أ) (181) '1' ؛
عندما "10110110" => (أ) (182) <= (أ) (182) '1' ؛
عندما "10110111" => (أ) (183) <= (أ) (183) '1' ؛
عندما "10111000" => (أ) (184) <= (أ) (184) '1' ؛
عندما "10111001" => (أ) (185) <= (أ) (185) '1' ؛
عندما "10111010" => (أ) (186) <= (أ) (186) '1' ؛
عندما "10111011" => (أ) (187) <= (أ) (187) '1' ؛
عندما "10111100" => (أ) (188) <= (أ) (188) '1' ؛
عندما "10111101" => (أ) (189) <= (أ) (189) '1' ؛
عندما "10111110" => (أ) (190) <= (أ) (190) '1' ؛
عندما "10111111" => (أ) (191) <= (أ) (191) '1' ؛
عندما "11000000" => (أ) (192) <= (أ) (192) '1' ؛
عندما "11000001" => (أ) (193) <= (أ) (193) '1' ؛
عندما "11000010" => (أ) (194) <= (أ) (194) '1' ؛
عندما "11000011" => (أ) (195) <= (أ) (195) '1' ؛
عندما "11000100" => (أ) (196) <= (أ) (196) '1' ؛
عندما "11000101" => (أ) (197) <= (أ) (197) '1' ؛
عندما "11000110" => (أ) (198) <= (أ) (198) '1' ؛
عندما "11000111" => (أ) (199) <= (أ) (199) '1' ؛
عندما "11001000" => (أ) (200) <= (أ) (200) '1' ؛
عندما "11001001" => (أ) (201) <= (أ) (201) '1' ؛
عندما "11001010" => (أ) (202) <= (أ) (202) '1' ؛
عندما "11001011" => (أ) (203) <= (أ) (203) '1' ؛
عندما "11001100" => (أ) (204) <= (أ) (204) '1' ؛
عندما "11001101" => (أ) (205) <= (أ) (205) '1' ؛
عندما "11001110" => (أ) (206) <= (أ) (206) '1' ؛
عندما "11001111" => (أ) (207) <= (أ) (207) '1' ؛
عندما "11010000" => (أ) (208) <= (أ) (208) '1' ؛
عندما "11010001" => (أ) (209) <= (أ) (209) '1' ؛
عندما "11010010" => (أ) (210) <= (أ) (210) '1' ؛
عندما "11010011" => (أ) (211) <= (أ) (211) '1' ؛
عندما "11010100" => (أ) (212) <= (أ) (212) '1' ؛
عندما "11010101" => (أ) (213) <= (أ) (213) '1' ؛
عندما "11010110" => (أ) (214) <= (أ) (214) '1' ؛
عندما "11010111" => (أ) (215) <= (أ) (215) '1' ؛
عندما "11011000" => (أ) (216) <= (أ) (216) '1' ؛
عندما "11011001" => (أ) (217) <= (أ) (217) '1' ؛
عندما "11011010" => (أ) (218) <= (أ) (218) '1' ؛
عندما "11011011" => (أ) (219) <= (أ) (219) '1' ؛
عندما "11011100" => (أ) (220) <= (أ) (220) '1' ؛
عندما "11011101" => (أ) (221) <= (أ) (221) '1' ؛
عندما "11011110" => (أ) (222) <= (أ) (222) '1' ؛
عندما "11011111" => (أ) (223) <= (أ) (223) '1' ؛
عندما "11100000" => (أ) (224) <= (أ) (224) '1' ؛
عندما "11100001" => (أ) (225) <= (أ) (225) '1' ؛
عندما "11100010" => (أ) (226) <= (أ) (226) '1' ؛
عندما "11100011" => (أ) (227) <= (أ) (227) '1' ؛
عندما "11100100" => (أ) (228) <= (أ) (228) '1' ؛
عندما "11100101" => (أ) (229) <= (أ) (229) '1' ؛
عندما "11100110" => (أ) (230) <= (أ) (230) '1' ؛
عندما "11100111" => (أ) (231) <= (أ) (231) '1' ؛
عندما "11101000" => (أ) (232) <= (أ) (232) '1' ؛
عندما "11101001" => (أ) (233) <= (أ) (233) '1' ؛
عندما "11101010" => (أ) (234) <= (أ) (234) '1' ؛
عندما "11101011" => (أ) (235) <= (أ) (235) '1' ؛
عندما "11101100" => (أ) (236) <= (أ) (236) '1' ؛
عندما "11101101" => (أ) (237) <= (أ) (237) '1' ؛
عندما "11101110" => (أ) (238) <= (أ) (238) '1' ؛
عندما "11101111" => (أ) (239) <= (أ) (239) '1' ؛
عندما "11110000" => (أ) (240) <= (أ) (240) '1' ؛
عندما "11110001" => (أ) (241) <= (أ) (241) '1' ؛
عندما "11110010" => (أ) (242) <= (أ) (242) '1' ؛
عندما "11110011" => (أ) (243) <= (أ) (243) '1' ؛
عندما "11110100" => (244) <= (244) '1' ؛
عندما "11110101" => (أ) (245) <= (أ) (245) '1' ؛
عندما "11110110" => (أ) (246) <= (أ) (246) '1' ؛
عندما "11110111" => (أ) (247) <= (أ) (247) '1' ؛
عندما "11111000" => (أ) (248) <= (أ) (248) '1' ؛
عندما "11111001" => (أ) (249) <= (أ) (249) '1' ؛
عندما "11111010" => (أ) (250) <= (أ) (250) '1' ؛
عندما "11111011" => (أ) (251) <= (أ) (251) '1' ؛
عندما "11111100" => (أ) (252) <= (أ) (252) '1' ؛
عندما "11111101" => (أ) (253) <= (أ) (253) '1' ؛
عندما "11111110" => (أ) (254) <= (أ) (254) '1' ؛
عندما "11111111" => (أ) (255) <= (أ) (255) '1' ؛
عند الآخرين => (أ) (0) <= أ (0) '1' ؛

حالة الغاية ؛

إذا كانت الغاية ؛

عملية الغاية ؛

عملية (ط ، (بيئة)
يبدأ

إذا كان ((بيئة = '1') ثم

إذا كان (ط = "10100") ثم

ي في ل0 إلى 255 حلقة

إذا كان (TemNum <أ ي ()) ثم

TemDis <= conv_std_logic_vector (ي ،

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="هادئ" border="0" />

؛
TemNum <= (أ) (ي) ؛

أيضا

TemDis <= TemDis ؛
TemNum <= TemNum ؛

إذا كانت الغاية ؛

حلقة الغاية ؛

TemMeuOk <= '1' ؛

إذا كانت الغاية ؛

إذا كانت الغاية ؛

عملية الغاية ؛

عملية (مدار الساعة ، والإحصاءات البيئية ، ومكافحة)
يبدأ

إذا كان ((بيئة = '1') ثم

إذا كان (clock'event وعقارب الساعة = '1') ثم

إذا كانت (مكافحة = "11111111") ثم

مكافحة <= (الآخرين => '0') ؛
ط <= ط '1' ؛

elsif (العداد < "11111111") ثم

مكافحة <= مكافحة '1' ؛

إذا كانت الغاية ؛

إذا كانت الغاية ؛

إذا كانت الغاية ؛

عملية الغاية ؛

المسافة <= TemDis ؛
ارقام <= TemNum ؛
MeuOk <= TemMeuOk ؛نهاية السلوكية ؛
ط استخدام حبيب الرضا من 7.1b ايسي ، 252 الإنذار يحدث ، مثل العثور على 5 بت مزلاج للإشارة <a_10>، ويقول لي إشارة "ط' لا تستخدم على الإطلاق أو المنتدبين ،
أنا حقا لا أعرف لماذا.
شكرا جزيلا لجهودكم النصائح.

 
مرحبا ،
من كل ما أنا undestood من البريد اور لقد تصحيح رمز أور...
البرمجية التالية قد تكون غير صحيحة ولكنها سوف أعطيكم فكرة عن
كيفية القيام الترميز في إتش دي إل.يتذكروا شيئا واحدا هو الأجهزة إتش دي إل
وصف اللغة ، لذا اعتقد أول الأجهزة ومن ثم استخدام لإتش دي إل
فقط وصف تلك الأجهزة!

ويساعد هذا الأمل!رمز :

IEEE المكتبة ؛

استخدام IEEE.STD_LOGIC_1164.all ؛

استخدام IEEE.STD_LOGIC_ARITH.all ؛

استخدام IEEE.STD_LOGIC_UNSIGNED.all ؛

countree الكيان

(الميناء

الساعة : في std_logic ؛

الإحصاءات البيئية : في std_logic ؛

Sigin : في std_logic ؛

المسافة : خارج std_logic_vector (7 downto 0) ؛

ارقام اخرى : من std_logic_vector (4 downto 0) ؛

MeuOk : خارج std_logic

(؛)

countree الغاية ؛

العمارة السلوكية هو من countreeإشارة العداد : std_logic_vector (7 downto 0) ؛

ط إشارة : std_logic_vector (4 downto 0) ؛

TemDis إشارة : std_logic_vector (7 downto 0) ؛

إشارة TemNum : std_logic_vector (4 downto 0) ؛

إشارة TemMeuOk : std_logic ؛

كلمة الفرعي هو std_logic_vector (4 downto 0) ؛

نوع الذاكرة هي مجموعة (0 إلى 255) للكلمة ؛

إشارة إلى : الذاكرة ؛

يبدأ

-- صفيف من العدادات

-- وهنا أود أن نفترض أن Sigin متزامن مع عقارب الساعة

عملية (على مدار الساعة ، الإحصاءات)

يبدأ

إذا كان ((بيئة = '0') ثم

ي في ل0 إلى 255 حلقة

(أ) (ي) <= (الآخرين => '0') ؛

حلقة الغاية ؛

elsif (clock'event وعقارب الساعة = '1') ثم

إذا كان (ط < "10100" وSigin = '1') ثم

-- تحتاج إلى إصلاح هذه القضية الكبيرة البيان!

-- يمكننا استخدام الذاكرة هنا

حالة العداد

عندما "00000000" => (أ) (0) <= أ (0) '1' ؛

عندما "00000001" => (أ) (1) <= أ (1) '1' ؛

عندما "00000010" => (أ) (2) <= أ (2) '1' ؛

عندما "00000011" => (أ) (3) <= (أ) (3) '1' ؛

عندما "00000100" => (أ) (4) <= (أ) (4) '1' ؛

عندما "00000101" => (أ) (5) <= أ (5) '1' ؛

عندما "00000110" => (أ) (6) <= (أ) (6) '1' ؛

عندما "00000111" => (أ) (7) <= أ (7) '1' ؛

عندما "00001000" => (أ) (8) <= (أ) (8) '1' ؛

عندما "00001001" => (أ) (9) <= أ (9) '1' ؛

عندما "00001010" => (أ) (10) <= أ (10) '1' ؛

عندما "00001011" => (أ) (11) <= (أ) (11) '1' ؛

عندما "00001100" => (أ) (12) <= (أ) (12) '1' ؛

عندما "00001101" => (أ) (13) <= أ (13) '1' ؛

عندما "00001110" => (أ) (14) <= (أ) (14) '1' ؛

عندما "00001111" => (أ) (15) <= (أ) (15) '1' ؛

عندما "00010000" => (أ) (16) <= (أ) (16) '1' ؛

عندما "00010001" => (أ) (17) <= (أ) (17) '1' ؛

عندما "00010010" => (أ) (18) <= (أ) (18) '1' ؛

عندما "00010011" => (أ) (19) <= (أ) (19) '1' ؛

عندما "00010100" => (أ) (20) <= (أ) (20) '1' ؛

عندما "00010101" => (أ) (21) <= (أ) (21) '1' ؛

عندما "00010110" => (أ) (22) <= (أ) (22) '1' ؛

عندما "00010111" => (أ) (23) <= (أ) (23) '1' ؛

عندما "00011000" => (أ) (24) <= (أ) (24) '1' ؛

عندما "00011001" => (أ) (25) <= (أ) (25) '1' ؛

عندما "00011010" => (أ) (26) <= (أ) (26) '1' ؛

عندما "00011011" => (أ) (27) <= أ (27) '1' ؛

عندما "00011100" => (أ) (28) <= (أ) (28) '1' ؛

عندما "00011101" => (أ) (29) <= (أ) (29) '1' ؛

عندما "00011110" => (أ) (30) <= (أ) (30) '1' ؛

عندما "00011111" => (أ) (31) <= (أ) (31) '1' ؛

عندما "00100000" => (أ) (32) <= (أ) (32) '1' ؛

عندما "00100001" => (أ) (33) <= (أ) (33) '1' ؛

عندما "00100010" => (أ) (34) <= أ (34) '1' ؛

عندما "00100011" => (أ) (35) <= (أ) (35) '1' ؛

عندما "00100100" => (أ) (36) <= (أ) (36) '1' ؛

عندما "00100101" => (أ) (37) <= (أ) (37) '1' ؛

عندما "00100110" => (أ) (38) <= (أ) (38) '1' ؛

عندما "00100111" => (أ) (39) <= (أ) (39) '1' ؛

عندما "00101000" => (أ) (40) <= (أ) (40) '1' ؛

عندما "00101001" => (أ) (41) <= (أ) (41) '1' ؛

عندما "00101010" => (أ) (42) <= (أ) (42) '1' ؛

عندما "00101011" => (أ) (43) <= (أ) (43) '1' ؛

عندما "00101100" => (أ) (44) <= (أ) (44) '1' ؛

عندما "00101101" => (أ) (45) <= (أ) (45) '1' ؛

عندما "00101110" => (أ) (46) <= (أ) (46) '1' ؛

عندما "00101111" => (أ) (47) <= (أ) (47) '1' ؛

عندما "00110000" => (أ) (48) <= (أ) (48) '1' ؛

عندما "00110001" => (أ) (49) <= (أ) (49) '1' ؛

عندما "00110010" => (أ) (50) <= (أ) (50) '1' ؛

عندما "00110011" => (أ) (51) <= (أ) (51) '1' ؛

عندما "00110100" => (أ) (52) <= (أ) (52) '1' ؛

عندما "00110101" => (أ) (53) <= (أ) (53) '1' ؛

عندما "00110110" => (أ) (54) <= (أ) (54) '1' ؛

عندما "00110111" => (أ) (55) <= (أ) (55) '1' ؛

عندما "00111000" => (أ) (56) <= (أ) (56) '1' ؛

عندما "00111001" => (أ) (57) <= (أ) (57) '1' ؛

عندما "00111010" => (أ) (58) <= (أ) (58) '1' ؛

عندما "00111011" => (أ) (59) <= (أ) (59) '1' ؛

عندما "00111100" => (أ) (60) <= (أ) (60) '1' ؛

عندما "00111101" => (أ) (61) <= (أ) (61) '1' ؛

عندما "00111110" => (أ) (62) <= (أ) (62) '1' ؛

عندما "00111111" => (أ) (63) <= (أ) (63) '1' ؛

عندما "01000000" => (أ) (64) <= (أ) (64) '1' ؛

عندما "01000001" => (أ) (65) <= (أ) (65) '1' ؛

عندما "01000010" => (أ) (66) <= (أ) (66) '1' ؛

عندما "01000011" => (أ) (67) <= (أ) (67) '1' ؛

عندما "01000100" => (أ) (68) <= (أ) (68) '1' ؛

عندما "01000101" => (أ) (69) <= (أ) (69) '1' ؛

عندما "01000110" => (أ) (70) <= (أ) (70) '1' ؛

عندما "01000111" => (أ) (71) <= (أ) (71) '1' ؛

عندما "01001000" => (أ) (72) <= (أ) (72) '1' ؛

عندما "01001001" => (أ) (73) <= (أ) (73) '1' ؛

عندما "01001010" => (أ) (74) <= (أ) (74) '1' ؛

عندما "01001011" => (أ) (75) <= (أ) (75) '1' ؛

عندما "01001100" => (أ) (76) <= (أ) (76) '1' ؛

عندما "01001101" => (أ) (77) <= (أ) (77) '1' ؛

عندما "01001110" => (أ) (78) <= (أ) (78) '1' ؛

عندما "01001111" => (أ) (79) <= (أ) (79) '1' ؛

عندما "01010000" => (أ) (80) <= (أ) (80) '1' ؛

عندما "01010001" => (أ) (81) <= (أ) (81) '1' ؛

عندما "01010010" => (أ) (82) <= (أ) (82) '1' ؛

عندما "01010011" => (أ) (83) <= (أ) (83) '1' ؛

عندما "01010100" => (أ) (84) <= (أ) (84) '1' ؛

عندما "01010101" => (أ) (85) <= (أ) (85) '1' ؛

عندما "01010110" => (أ) (86) <= (أ) (86) '1' ؛

عندما "01010111" => (أ) (87) <= (أ) (87) '1' ؛

عندما "01011000" => (أ) (88) <= (أ) (88) '1' ؛

عندما "01011001" => (أ) (89) <= (أ) (89) '1' ؛

عندما "01011010" => (أ) (90) <= (أ) (90) '1' ؛

عندما "01011011" => (أ) (91) <= (أ) (91) '1' ؛

عندما "01011100" => (أ) (92) <= (أ) (92) '1' ؛

عندما "01011101" => (أ) (93) <= (أ) (93) '1' ؛

عندما "01011110" => (أ) (94) <= (أ) (94) '1' ؛

عندما "01011111" => (أ) (95) <= (أ) (95) '1' ؛

عندما "01100000" => (أ) (96) <= (أ) (96) '1' ؛

عندما "01100001" => (أ) (97) <= (أ) (97) '1' ؛

عندما "01100010" => (أ) (98) <= (أ) (98) '1' ؛

عندما "01100011" => (أ) (99) <= (أ) (99) '1' ؛

عندما "01100100" => (أ) (100) <= (أ) (100) '1' ؛

عندما "01100101" => (أ) (101) <= (أ) (101) '1' ؛

عندما "01100110" => (أ) (102) <= (أ) (102) '1' ؛

عندما "01100111" => (أ) (103) <= (أ) (103) '1' ؛

عندما "01101000" => (أ) (104) <= (أ) (104) '1' ؛

عندما "01101001" => (أ) (105) <= (أ) (105) '1' ؛

عندما "01101010" => (أ) (106) <= (أ) (106) '1' ؛

عندما "01101011" => (أ) 107 () <= (أ) (107) '1' ؛

عندما "01101100" => (أ) (108) <= (أ) (108) '1' ؛

عندما "01101101" => (أ) (109) <= (أ) (109) '1' ؛

عندما "01101110" => (أ) (110) <= (أ) (110) '1' ؛

عندما "01101111" => (أ) (111) <= (أ) (111) '1' ؛

عندما "01110000" => (أ) (112) <= (أ) (112) '1' ؛

عندما "01110001" => (أ) (113) <= (أ) (113) '1' ؛

عندما "01110010" => (أ) (114) <= (أ) (114) '1' ؛

عندما "01110011" => (أ) (115) <= (أ) (115) '1' ؛

عندما "01110100" => (أ) (116) <= (أ) (116) '1' ؛

عندما "01110101" => (أ) (117) <= (أ) (117) '1' ؛

عندما "01110110" => (أ) (118) <= (أ) (118) '1' ؛

عندما "01110111" => (أ) (119) <= (أ) (119) '1' ؛

عندما "01111000" => (أ) (120) <= (أ) (120) '1' ؛

عندما "01111001" => (أ) (121) <= (أ) (121) '1' ؛

عندما "01111010" => (أ) (122) <= (أ) (122) '1' ؛

عندما "01111011" => (أ) (123) <= (أ) (123) '1' ؛

عندما "01111100" => (أ) (124) <= (أ) (124) '1' ؛

عندما "01111101" => (أ) (125) <= (أ) (125) '1' ؛

عندما "01111110" => (أ) (126) <= (أ) (126) '1' ؛

عندما "01111111" => (أ) (127) <= (أ) (127) '1' ؛

عندما "10000000" => (أ) (128) <= (أ) (128) '1' ؛

عندما "10000001" => (أ) (129) <= (أ) (129) '1' ؛

عندما "10000010" => (أ) (130) <= (أ) (130) '1' ؛

عندما "10000011" => (أ) (131) <= (أ) (131) '1' ؛

عندما "10000100" => (أ) (132) <= (أ) (132) '1' ؛

عندما "10000101" => (أ) (133) <= (أ) (133) '1' ؛

عندما "10000110" => (أ) (134) <= (أ) (134) '1' ؛

عندما "10000111" => (أ) (135) <= (أ) (135) '1' ؛

عندما "10001000" => (أ) (136) <= (أ) (136) '1' ؛

عندما "10001001" => (أ) (137) <= (أ) (137) '1' ؛

عندما "10001010" => (أ) (138) <= (أ) (138) '1' ؛

عندما "10001011" => (أ) (139) <= (أ) (139) '1' ؛

عندما "10001100" => (أ) (140) <= (أ) (140) '1' ؛

عندما "10001101" => (أ) (141) <= (أ) (141) '1' ؛

عندما "10001110" => (أ) (142) <= (أ) (142) '1' ؛

عندما "10001111" => (أ) (143) <= (أ) (143) '1' ؛

عندما "10010000" => (أ) (144) <= (أ) (144) '1' ؛

عندما "10010001" => (أ) (145) <= (أ) (145) '1' ؛

عندما "10010010" => (أ) (146) <= (أ) (146) '1' ؛

عندما "10010011" => (أ) (147) <= (أ) (147) '1' ؛

عندما "10010100" => (أ) (148) <= أ (148) '1' ؛

عندما "10010101" => (أ) (149) <= (أ) (149) '1' ؛

عندما "10010110" => (أ) (150) <= (أ) (150) '1' ؛

عندما "10010111" => (أ) (151) <= (أ) (151) '1' ؛

عندما "10011000" => (أ) (152) <= (أ) (152) '1' ؛

عندما "10011001" => (أ) (153) <= (أ) (153) '1' ؛

عندما "10011010" => (أ) (154) <= (أ) (154) '1' ؛

عندما "10011011" => (أ) (155) <= (أ) (155) '1' ؛

عندما "10011100" => (أ) (156) <= (أ) (156) '1' ؛

عندما "10011101" => (أ) (157) <= (أ) (157) '1' ؛

when "10011110" => a(158) <= a(158) '1';
عندما "10011111" => (أ) (159) <= (أ) (159) '1' ؛

عندما "10100000" => (أ) (160) <= (أ) (160) '1' ؛

عندما "10100001" => (أ) (161) <= (أ) (161) '1' ؛

عندما "10100010" => (أ) (162) <= (أ) (162) '1' ؛

عندما "10100011" => (أ) (163) <= (أ) (163) '1' ؛

عندما "10100100" => (أ) (164) <= (أ) (164) '1' ؛

عندما "10100101" => (أ) (165) <= (أ) (165) '1' ؛

عندما "10100110" => (أ) (166) <= (أ) (166) '1' ؛

عندما "10100111" => (أ) (167) <= (أ) (167) '1' ؛

عندما "10101000" => (أ) (168) <= (أ) (168) '1' ؛

عندما "10101001" => (أ) (169) <= (أ) (169) '1' ؛

عندما "10101010" => (أ) (170) <= (أ) (170) '1' ؛

عندما "10101011" => (أ) (171) <= (أ) (171) '1' ؛

عندما "10101100" => (أ) (172) <= (أ) (172) '1' ؛

عندما "10101101" => (أ) (173) <= (أ) (173) '1' ؛

عندما "10101110" => (أ) (174) <= (أ) (174) '1' ؛

عندما "10101111" => (أ) (175) <= (أ) (175) '1' ؛

عندما "10110000" => (أ) (176) <= (أ) (176) '1' ؛

عندما "10110001" => (أ) (177) <= (أ) (177) '1' ؛

عندما "10110010" => (أ) (178) <= (أ) (178) '1' ؛

عندما "10110011" => (أ) (179) <= (أ) (179) '1' ؛

عندما "10110100" => (أ) (180) <= (أ) (180) '1' ؛

عندما "10110101" => (أ) (181) <= (أ) (181) '1' ؛

عندما "10110110" => (أ) (182) <= (أ) (182) '1' ؛

عندما "10110111" => (أ) (183) <= (أ) (183) '1' ؛

عندما "10111000" => (أ) (184) <= (أ) (184) '1' ؛

عندما "10111001" => (أ) (185) <= (أ) (185) '1' ؛

عندما "10111010" => (أ) (186) <= (أ) (186) '1' ؛

عندما "10111011" => (أ) (187) <= (أ) (187) '1' ؛

عندما "10111100" => (أ) (188) <= (أ) (188) '1' ؛

عندما "10111101" => (أ) (189) <= (أ) (189) '1' ؛

عندما "10111110" => (أ) (190) <= (أ) (190) '1' ؛

عندما "10111111" => (أ) (191) <= (أ) (191) '1' ؛

عندما "11000000" => (أ) (192) <= (أ) (192) '1' ؛

عندما "11000001" => (أ) (193) <= (أ) (193) '1' ؛

عندما "11000010" => (أ) (194) <= (أ) (194) '1' ؛

عندما "11000011" => (أ) (195) <= (أ) (195) '1' ؛

عندما "11000100" => (أ) (196) <= (أ) (196) '1' ؛

عندما "11000101" => (أ) (197) <= (أ) (197) '1' ؛

عندما "11000110" => (أ) (198) <= (أ) (198) '1' ؛

عندما "11000111" => (أ) (199) <= (أ) (199) '1' ؛

عندما "11001000" => (أ) (200) <= (أ) (200) '1' ؛

عندما "11001001" => (أ) (201) <= (أ) (201) '1' ؛

عندما "11001010" => (أ) (202) <= (أ) (202) '1' ؛

عندما "11001011" => (أ) (203) <= (أ) (203) '1' ؛

عندما "11001100" => (أ) (204) <= (أ) (204) '1' ؛

عندما "11001101" => (أ) (205) <= (أ) (205) '1' ؛

عندما "11001110" => (أ) (206) <= (أ) (206) '1' ؛

عندما "11001111" => (أ) (207) <= (أ) (207) '1' ؛

عندما "11010000" => (أ) (208) <= (أ) (208) '1' ؛

عندما "11010001" => (أ) (209) <= (أ) (209) '1' ؛

عندما "11010010" => (أ) (210) <= (أ) (210) '1' ؛

عندما "11010011" => (أ) (211) <= (أ) (211) '1' ؛

عندما "11010100" => (أ) (212) <= (أ) (212) '1' ؛

عندما "11010101" => (أ) (213) <= (أ) (213) '1' ؛

عندما "11010110" => (أ) (214) <= (أ) (214) '1' ؛

عندما "11010111" => (أ) (215) <= (أ) (215) '1' ؛

عندما "11011000" => (أ) (216) <= (أ) (216) '1' ؛

عندما "11011001" => (أ) (217) <= (أ) (217) '1' ؛

عندما "11011010" => (أ) (218) <= (أ) (218) '1' ؛

عندما "11011011" => (أ) (219) <= (أ) (219) '1' ؛

عندما "11011100" => (أ) (220) <= (أ) (220) '1' ؛

عندما "11011101" => (أ) (221) <= (أ) (221) '1' ؛

عندما "11011110" => (أ) (222) <= (أ) (222) '1' ؛

عندما "11011111" => (أ) (223) <= (أ) (223) '1' ؛

عندما "11100000" => (أ) (224) <= (أ) (224) '1' ؛

عندما "11100001" => (أ) (225) <= (أ) (225) '1' ؛

عندما "11100010" => (أ) (226) <= (أ) (226) '1' ؛

عندما "11100011" => (أ) (227) <= (أ) (227) '1' ؛

عندما "11100100" => (أ) (228) <= (أ) (228) '1' ؛

عندما "11100101" => (أ) (229) <= (أ) (229) '1' ؛

عندما "11100110" => (أ) (230) <= (أ) (230) '1' ؛

عندما "11100111" => (أ) (231) <= (أ) (231) '1' ؛

عندما "11101000" => (أ) (232) <= (أ) (232) '1' ؛

عندما "11101001" => (أ) (233) <= (أ) (233) '1' ؛

عندما "11101010" => (أ) (234) <= (أ) (234) '1' ؛

عندما "11101011" => (أ) (235) <= (أ) (235) '1' ؛

عندما "11101100" => (أ) (236) <= (أ) (236) '1' ؛

عندما "11101101" => (أ) (237) <= (أ) (237) '1' ؛

عندما "11101110" => (أ) (238) <= (أ) (238) '1' ؛

عندما "11101111" => (أ) (239) <= (أ) (239) '1' ؛

عندما "11110000" => (أ) (240) <= (أ) (240) '1' ؛

عندما "11110001" => (أ) (241) <= (أ) (241) '1' ؛

عندما "11110010" => (أ) (242) <= (أ) (242) '1' ؛

عندما "11110011" => (أ) (243) <= (أ) (243) '1' ؛

عندما "11110100" => (244) <= (244) '1' ؛

عندما "11110101" => (أ) (245) <= (أ) (245) '1' ؛

عندما "11110110" => (أ) (246) <= (أ) (246) '1' ؛

عندما "11110111" => (أ) (247) <= (أ) (247) '1' ؛

عندما "11111000" => (أ) (248) <= (أ) (248) '1' ؛

عندما "11111001" => (أ) (249) <= (أ) (249) '1' ؛

عندما "11111010" => (أ) (250) <= (أ) (250) '1' ؛

عندما "11111011" => (أ) (251) <= (أ) (251) '1' ؛

عندما "11111100" => (أ) (252) <= (أ) (252) '1' ؛

عندما "11111101" => (أ) (253) <= (أ) (253) '1' ؛

عندما "11111110" => (أ) (254) <= (أ) (254) '1' ؛

عندما "11111111" => (أ) (255) <= (أ) (255) '1' ؛

عند الآخرين => (أ) (0) <= أ (0) '1' ؛

حالة الغاية ؛

إذا كانت الغاية ؛

إذا كانت الغاية ؛

عملية الغاية ؛-------------------------------------------------- ---------------------------

-- وهذه العملية لمعرفة أقصى قيمة الاعتماد ومكانتها في

-- مكافحة طائفة!
ويتم ذلك عندما تفيض العداد الرئيسي 20 مرة!

-- احتساب عدد ماكس وموقفها في مواجهة مجموعة يأخذ 256 ساعة

-- دورات.

-------------------------------------------------- ---------------------------

عملية (على مدار الساعة ، الإحصاءات)

يبدأ

إذا كان ((بيئة = '0') ثم

TemDis <= "00000000" ؛

TemNum <= "00000" ؛

TemMeuOk <= '0' ؛

clock'event elsif وعقارب الساعة = '1' ثم

إذا كان (ط = "10100" ومكافحة = "00000000") ثم

TemDis <= "00000000" ؛

TemNum <= أ (0) ؛

TemMeuOk <= '0' ؛

elsif (ط = "10100") ثم

إذا كان (TemNum <أ conv_integer ((العداد))) ثم

TemDis <= مضادة ؛

TemNum <= أ conv_integer ((العداد)) ؛

إذا كانت الغاية ؛

إذا كان العداد = "11111111" ثم

TemMeuOk <= '1' ؛

إذا كانت الغاية ؛

إذا كانت الغاية ؛

إذا كانت الغاية ؛

عملية الغاية ؛

-------------------------------------------------- ---------------------------

-- ماجستير في مكافحة

-------------------------------------------------- ---------------------------

عملية (مدار الساعة ، والإحصاءات البيئية ، ومكافحة)

يبدأ

إذا كان ((بيئة = '0') ثم

ط <= "00000" ؛

مكافحة <= (الآخرين => '0') ؛

clock'event elsif وعقارب الساعة = '1' ثم

مكافحة <= مكافحة '1' ؛

إذا كانت (مكافحة = "11111111") ثم

ط <= ط '1' ؛

إذا كانت الغاية ؛

إذا كانت الغاية ؛

عملية الغاية ؛المسافة <= TemDis ؛

ارقام <= TemNum ؛

MeuOk <= TemMeuOk ؛

نهاية السلوكية ؛
 
أنا لا أعرف في إتش دي إل ، ولكن يبدو أن مثل الكثير من رمز!لست متأكدا من أنني أفهم تماما الشرط الخاص بك ، ولكن أنا جلد حتى هذا القليل فيريلوج شيء على أي حال.نأمل أن يساعد قليلا.ما الذي يمكن القيام به في 4am صباح يوم السبت؟

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="غمزة" border="0" />وتعول من 0 إلى 255 عشرين مرة.

goes high, it increments the corresponding bin
.

كلما sigin
يذهب عالية ، فإنه بزيادة بن
المقابلة.النواتج باستمرار اقول لكم بن لديه والتي تبلغ أكثر ، وبلغ عد.وهي تحتل زاوية صغيرة من الثاني بوعبود ، وغني عن 200 ميغاهيرتز.

رمز :

رأس وحدة (clk ، sigin ، fullest_bin_addr ، fullest_bin_data) ؛

ن عدد صحيح ؛

مدخلات clk ، sigin ؛ / / التوليف السمة فترة clk "5ns" ؛

ريج sigin1 = 0 ، current_blip = 0 ، next_blip = 0 ؛

ريج [7:0] عد = 0 ، current_bin_addr = 0 ، next_bin_addr = 0 ؛

ريج [4:0] الحلقات = 20 ، بن [0:255] ، current_bin_data = 0 ، next_bin_data = 0 ؛

الناتج ريج [7:0] fullest_bin_addr = 0 ؛

الناتج ريج [4:0] fullest_bin_data = 0 ؛الأولي تبدأ

ل (ن = 0 ؛ ن <256 ؛ ن = ن 1)

بن [ن] = 0 ؛

نهايةدائما @ (clk posedge) يبدأ

sigin1 <= sigin ؛

current_blip <= sigin ~ sigin1 & & & & (حلقات> 0) ؛ / / الكشف عن ارتفاع الحافة

current_bin_data <= بن [العد] ؛ / / القيمة الحالية ، خط أنابيب لاستنتاج كتلة ذاكرة الوصول العشوائي

current_bin_addr <= العد ؛

next_blip <= current_blip ؛

next_bin_data <= current_bin_data 1 ؛ / / القيمة الحالية 1

next_bin_addr <= current_bin_addr ؛

إذا كان (next_blip) يبدأ

بن [next_bin_addr] <= next_bin_data ؛ / / زيادة قيمة الكتابة

إذا كان (next_bin_data> fullest_bin_data) يبدأ

fullest_bin_addr <= next_bin_addr ؛ / / نتذكر الذروة

fullest_bin_data <= next_bin_data ؛

نهاية

نهاية

العد <= العد (حلقات> 0) ؛

الحلقات <= الحلقات -- (العد == 255) ؛

نهاية

endmodule
 
شكرا جزيلا لكم على مساعدتكم ، nand_gates ، رمز تصحيح بالنسبة لي كنت قد
بالفعل يمرر حبيب الرضا من ise7.1b ، وتحت لمساعدتكم ، وأنا أعرف المزيد عن إتش دي إل ،
وسوف يستمر فى العمل بجد مع Spartan3 it.I استخدامها ، واستخدام المنطق هو على النحو المبين أدناه ،
ربما ينبغي لي تغيير stytle رمز أو يستخدم وسيلة أخرى للحد من استخدام الجهاز.
والأمر في غاية النوع من القيام بذلك ، echo47 ، حيث انني اعرف القليل عن فيريلوج ، سوف أجد
بعض الكتب فيريلوج لفهم التعليمات البرمجية أولا ، شكرا لكم ~
آسف ، ولكن تحتاج إلى تسجيل الدخول لمشاهدة هذه الضميمة

 
شكرا لك يا frends.And هذا الصباح ، وأنا حبيب الرضا echo47 برنامج فيريلوج ، انها حقا تحتل أقل من الموارد ، وأظهر التقرير أن واحدا برام المستخدمة ، ولكن كما أعرف ما إذا كنت تريد استخدام الكتلة في رام إف بي جي إيه ، يجب عليك استخدام نموذجها في بلدكم رمز ، لماذا هذا
يستخدم رمز دون أي رام كتلة الوحدة يمكن توليف كتلة واحدة من ذاكرة الوصول العشوائي؟وأضاف بعد 9 دقائق :الآن ، رمز إتش دي إل هو على النحو المبين أدناه ، وذلك هو أيضا نشر التقرير ، وأنه لا يمكن لا توليف رام كتلة؟

IEEE المكتبة ؛
IEEE.STD_LOGIC_1164.ALL استخدام ؛
IEEE.STD_LOGIC_ARITH.ALL استخدام ؛
IEEE.STD_LOGIC_UNSIGNED.ALL استخدام ؛

---- حرر التالي مكتبة الإعلان إذا instantiating
---- أي Xilinx الأوليات في هذا الرمز.
مكتبة UNISIM ؛
استخدام UNISIM.VComponents.all ؛

هو كيان countree1
(الميناء
Clk : في std_logic ؛
Sigin : في std_logic ؛
الإحصاءات البيئية : في std_logic ؛
MeuOK : خارج std_logic ؛
FinData : خارج std_logic_vector (4 downto 0) ؛
FinAdr : خارج std_logic_vector (7 downto 0)
(؛)
نهاية countree1 ؛

العمارة السلوكية هو من countree1

إشارة العد : std_logic_vector (7 downto 0) ؛
إشارة current_bin_address : std_logic_vector (7 downto 0) ؛
إشارة next_bin_address : std_logic_vector (7 downto 0) ؛
حلقات إشارة : std_logic_vector (4 downto 0) ؛
إشارة current_bin_data : std_logic_vector (4 downto 0) ؛
إشارة next_bin_data : std_logic_vector (4 downto 0) ؛
كلمة الفرعي هو std_logic_vector (4 downto 0) ؛
نوع الذاكرة هي مجموعة (0 إلى 255) للكلمة ؛
إشارة بن ل: الذاكرة ؛
إشارة TemFinData : std_logic_vector (4 downto 0) ؛
إشارة TemFinAdr : std_logic_vector (7 downto 0) ؛
يبدأ
عملية (الإحصاءات البيئية ، Clk)
يبدأ

إذا كان ((بيئة = '0') ثم

current_bin_address <= (الآخرين => '0') ؛
current_bin_data <= (الآخرين => '0') ؛
next_bin_address <= (الآخرين => '0') ؛
next_bin_data <= (الآخرين => '0') ؛
TemFinData <= (الآخرين => '0') ؛
TemFinAdr <= (الآخرين => '0') ؛

ي في ل0 إلى 255 حلقة

بن (ي) <= (الآخرين => '0') ؛

حلقة الغاية ؛

elsif (Clk'event وClk = '1') ثمcurrent_bin_data <= بن (conv_integer (العد)) ؛
current_bin_address <= العد ؛
next_bin_data <= current_bin_data '1' ؛
next_bin_address <= current_bin_address ؛
إذا كان (الحلقات < "10100" وSigin = '1') ثم
بن (conv_integer (next_bin_address)) <= next_bin_data ؛

إذا كان (next_bin_data> TemFinData) ثم

TemFinData <= next_bin_data ؛
TemFinAdr <= next_bin_address ؛

إذا كانت الغاية ؛

إذا كانت الغاية ؛

إذا كانت الغاية ؛

عملية الغاية ؛
عملية (Clk ، الإحصاءات)
يبدأ

إذا كان ((بيئة = '0') ثم

الحلقات <= "00000" ؛
العد <= (الآخرين => '0') ؛
MeuOK <= '0' ؛

elsif (Clk'event وClk = '1') ثم

العد <= العد '1' ؛

إذا كان (عد = "11111111" والحلقات < "10100") ثم

الحلقات <= حلقات '1' ؛

elsif (عد = "11111111" والحلقات = "10100") ثم

MeuOK <= '1' ؛

إذا كانت الغاية ؛
إذا كانت الغاية ؛
عملية الغاية ؛

FinData <= TemFinData ؛
FinAdr <= TemFinAdr ؛

نهاية السلوكية ؛
[/ تكس]
آسف ، ولكن تحتاج إلى تسجيل الدخول لمشاهدة هذه الضميمة

 
nkarmstrong كتب :

ولكن كما قلت أعرف ما إذا كنت تريد استخدام الكتلة في رام إف بي جي إيه ، يجب عليك استخدام نموذجها في الشفرة الخاصة بك ، لماذا يستخدم هذا الرمز من دون أي رام كتلة الوحدة يمكن توليف كتلة واحدة من ذاكرة الوصول العشوائي؟
 
شكرا جزيلا لك على الرد ، وربما أخطأت في تعريف "بن"
ويقول التقرير ما يلي :
* العثور على 1280 - بت سجل للإشارة <bin>.
* معلومات : حبيب الرضا : 738 -- هدل مستشار -- 1280 مترددون تم الاستدلال على إشارة <bin>.You may be trying to describe a RAM in a way that is incompatible with block and distributed RAM resources available on Xilinx devices, or with a specific template that is not supported. Please review the Xilinx resources documentation and the XST user manual for coding guidelines. Taking advantage of RAM resources will lead to improved device usage and reduced synthesis time. ملخص :

 
I see one problem. You are trying to zero the entire RAM when Ens goes low. You can't do that in an FPGA RAM. The RAM is automatically initialized to zero upon start-up. In my Verilog code, that "initial" loop runs only during simulation.

If you want to rerun the whole operation multiple times, then don't try to clear the RAM. Instead, modify the algorithm so during the first 0..255 cycle it ignores the original value, and writes the appropriate value into it.

I juggled a few things. Sorry I don't speak VHDL: رمز :

module top(clk, sigin, fullest_bin_addr, fullest_bin_data);
parameter         cycles = 20;
input             clk, sigin;     // synthesis attribute period clk "5ns";
reg               sigin1=0, blip, first_cycle;
reg         [7:0] count=0, current_bin_addr, next_bin_addr;
reg         [4:0] cycle=0, bin[0:255], current_bin_data, next_bin_data;
output reg  [7:0] fullest_bin_addr=0;
output reg  [4:0] fullest_bin_data=0;

دائما @ (clk posedge) يبدأ

sigin1 <= sigin;
blip <= sigin && ~sigin1 && (cycle != cycles);  // detect rising edge
current_bin_data <= bin[count];                 // current value, pipeline to infer block RAM
current_bin_addr <= count;
first_cycle <= (cycle == 0);
next_bin_data <= (first_cycle ? 0 : current_bin_data) blip;
next_bin_addr <= current_bin_addr;
bin[next_bin_addr] <= next_bin_data;            // write incremented value
if (next_bin_data > fullest_bin_data) begin
fullest_bin_addr <= next_bin_addr;            // remember the peak
fullest_bin_data <= next_bin_data;
نهاية

count <= count (cycle != cycles);
cycle <= cycle (count == 255);
نهاية

endmodule
 
thank you for your reply,and i think maybe when it synthesizes,it will find the corresponding signal as we,clk,ramdata,ramaddress for a block ram,
but after i delete the initial data of the ram,it still can't synthesize a block ram
maybe there is still anyting wrong.
and i think in your verilog programme," next_bin_data <= current_bin_data 1; "
this statment occers at every rising edg of the Clk,can it cause some logic problems?
 
It's fine to do next_bin_data <= current_bin_data 1
continuously, becasuse next_bin_data
is later used inside an "if" block.

Standby a moment -- I'm trying to learn VHDL.

-------- A few hours later --------&@^@*#$@#$*&*!!!

Ok I learned it. Sort-of. But now my brain hurts. Who created this language, a committee of madmen?

This works the same as my Verilog (probably has the same bugs): رمز :

library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.STD_LOGIC_UNSIGNED.all;

entity top is
generic (cycles : integer := 20);
port (clk              : in std_logic;
sigin            : in std_logic;
fullest_bin_addr : out std_logic_vector(7 downto 0);
fullest_bin_data : out std_logic_vector(4 downto 0));
attribute period : string;
attribute period of clk : signal is "6.0 ns";
end top;

architecture behave of top is
type mem_type is array (255 downto 0) of std_logic_vector (4 downto 0);
signal sigin1           : std_logic := '0';
signal blip             : std_logic_vector(0 downto 0) := "0";
signal first_cycle      : std_logic_vector(0 downto 0) := "0";
signal count            : std_logic_vector(7 downto 0) := "00000000";
signal cycle            : std_logic_vector(4 downto 0) := "00000";
signal current_bin_addr : std_logic_vector(7 downto 0) := "00000000";
signal current_bin_data : std_logic_vector(4 downto 0) := "00000";
signal next_bin_addr    : std_logic_vector(7 downto 0) := "00000000";
signal next_bin_data    : std_logic_vector(4 downto 0) := "00000";
signal bin              : mem_type;
signal full_bin_addr    : std_logic_vector(7 downto 0) := "00000000";
signal full_bin_data    : std_logic_vector(4 downto 0) := "00000";
يبدأ

process (clk) begin
if (clk'event and clk='1') then
sigin1 <= sigin;
if (sigin = '1' and sigin1 = '0' and cycle /= cycles) then  -- detect rising edge
blip <= "1";
أيضا

blip <= "0";
end if;
current_bin_data <= bin(conv_integer(count));  -- current value, pipeline to infer block RAM
current_bin_addr <= count;
if (cycle = 0) then
first_cycle <= "1";
أيضا

first_cycle <= "0";
end if;
if (first_cycle = "1") then
next_bin_data <= ("0000" & blip);
أيضا

next_bin_data <= ("0000" & blip) current_bin_data;
end if;
next_bin_addr <= current_bin_addr;
bin(conv_integer(next_bin_addr)) <= next_bin_data;          -- write incremented value
if (next_bin_data > full_bin_data) then
full_bin_addr <= next_bin_addr;                           -- remember the peak
full_bin_data <= next_bin_data;
end if;
if (cycle /= cycles) then
count <= count '1';
end if;
if (count = 255) then
cycle <= cycle '1';
end if;
end if;
عملية الغاية ؛

fullest_bin_addr <= full_bin_addr;
fullest_bin_data <= full_bin_data;
نهاية تتصرف ؛
 

Welcome to EDABoard.com

Sponsor

Back
Top