سلام. دوستان من این کد رو در ISE نوشتم:
اما موقع سنتز کردن، خطای زیر رو میده:
من خیلی در مورد این خطا توی اینترنت گشتم، اما اصلاً به جوابی نرسیدم. چون نمونه کدهایی که توی اینترنت هست همه به همین صورت کردن. تنها دلیلی که به ذهنم می رسه اینه که داخل process نمیشه از استفاده کرد. درسته؟ اگه درسته چرا؟؟
چون وقتی دوتا رو از داخل process بیرون آوردم سنتز انجام شد و بدون مشکل. سوال دیگه اینه که اگه باید بیارم بیرون به نظر شما این کد درست اجرا میشه؟ چون من می خوام از خروجی XOR برای clock سیستم استفاده کنم، و بالا یا پائین شمردن رو هم با خروجی D flip flop.
ممنون.
کد:
ENTITY Counter IS (reset: IN STD_LOGIC; -- asynchronous reset a,b: IN STD_LOGIC; -- inputs from encoder output : OUT STD_LOGIC_VECTOR (15 DOWNTO 0)); -- output of the counter END Counter; ARCHITECTURE Behavioral OF Counter IS COMPONENT XOR2 (x, y: IN STD_LOGIC; z: OUT STD_LOGIC); END COMPONENT; COMPONENT D_FF (d,clk: IN STD_LOGIC; q: OUT STD_LOGIC); END COMPONENT; SIGNAL out_d: STD_LOGIC; -- Output for D-FF SIGNAL out_x: STD_LOGIC; -- Output for XOR SIGNAL out_c: STD_LOGIC_VECTOR(15 DOWNTO 0); -- Ouput for Counter BEGIN PROCESS (reset, a, b) BEGIN ;(XOR2 (a, b, out_x --- خطا در این خط IF reset = '1' THEN out_c <= "1000000000000000"; -- reset active ELSIF RISING_EDGE(out_x) THEN -- no reset, so wait for rising edge of the clock d1: D_FF (a, b, out_d); IF out_d = '1' THEN out_c <= out_c + 1; ELSIF out_d = '0' THEN out_c <= out_c - 1; END IF; END IF; END PROCESS; output <= out_c; END Behavioral;
اما موقع سنتز کردن، خطای زیر رو میده:
کد:
ERROR:HDLParsers:164 - "D:/Documents and Settings/Hamed/My Documents/VHDL Projects/Encoder/Counter.vhd" Line 59. parse error, unexpected , expecting OPENPAR or TICK or LSQBRACK
من خیلی در مورد این خطا توی اینترنت گشتم، اما اصلاً به جوابی نرسیدم. چون نمونه کدهایی که توی اینترنت هست همه به همین صورت کردن. تنها دلیلی که به ذهنم می رسه اینه که داخل process نمیشه از استفاده کرد. درسته؟ اگه درسته چرا؟؟
چون وقتی دوتا رو از داخل process بیرون آوردم سنتز انجام شد و بدون مشکل. سوال دیگه اینه که اگه باید بیارم بیرون به نظر شما این کد درست اجرا میشه؟ چون من می خوام از خروجی XOR برای clock سیستم استفاده کنم، و بالا یا پائین شمردن رو هم با خروجی D flip flop.
ممنون.
دیدگاه