اطلاعیه

Collapse
No announcement yet.

آیا می توان از port map داخل process استفاده کرد؟

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    آیا می توان از port map داخل process استفاده کرد؟

    سلام. دوستان من این کد رو در ISE نوشتم:
    کد:
    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.

    ممنون.
    دانش فني تا به عمل تبديل نشده، ذره اي ارزش نداره. اما بعضي وقت ها بايد از دانش براي باز کردن مرزهاي جديدي در علم استفاده کرد، نه اينکه اونها رو صرفاً فقط به عمل تبديل کرد.

    #2
    پاسخ : آیا می توان از port map داخل process استفاده کرد؟

    سلام .نمی تونی داخل پروسه از port map استفاده کنی.
    دنيا آنقدر وسيع هست که براي همه مخلوقات جايي باشد پس به جاي آنکه جاي کسي را بگيريم تلاش کنيم جاي واقعي خود را بيابيم

    دیدگاه


      #3
      پاسخ : آیا می توان از port map داخل process استفاده کرد؟

      نوشته اصلی توسط seda...
      سلام .نمی تونی داخل پروسه از port map استفاده کنی.
      ممنون. با این حساب یعنی این که اگر همون port map رو بیرون از process بنویسم، برنامه بازم درست عمل می کنه؟؟
      دانش فني تا به عمل تبديل نشده، ذره اي ارزش نداره. اما بعضي وقت ها بايد از دانش براي باز کردن مرزهاي جديدي در علم استفاده کرد، نه اينکه اونها رو صرفاً فقط به عمل تبديل کرد.

      دیدگاه


        #4
        پاسخ : آیا می توان از port map داخل process استفاده کرد؟

        سلام .همون طور گفته بودید وقتی بیرون از پروسه گداشتید سنتز شد
        دنيا آنقدر وسيع هست که براي همه مخلوقات جايي باشد پس به جاي آنکه جاي کسي را بگيريم تلاش کنيم جاي واقعي خود را بيابيم

        دیدگاه

        لطفا صبر کنید...
        X