اطلاعیه

Collapse
No announcement yet.

طراحی چند TTL بر روی CPLD

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

    #16
    پاسخ : طراحی چند TTL بر روی CPLD

    واقعا مرسی یه دونه تشکر کمه
    راضی به این همه زحمت نبودم

    الان دو تا مشکل دارم یکی اینکه این آی سی XC2C64A به اصطلاح از خانواده Cool Runner II هست که حداکثر با 3.3 ولت کار میکنه ولی مدار من 5 ولت هست بنابراین از این آی سی نمیتونم استفاده بکنم.
    از طرف دیگه هم آی سی XC9572 رو نتونستم اینجا پیدا بکنم
    با توجه به این مقایسه بین مشخصات آی سی ها :
    XILINX CPLD PRODUCTS
    ظاهرا از XC9536 هم میتونم استفاده بکنم که البته از XC9572آ‌ ضعیف تر هست. این طور نیست؟

    مسئله بعدی اینه که به نظر میاد که این قسمت برنامه نویسیش یه کمی اذیتم بکنه
    البته اون طوری که توی آموزشها دیدم ظاهرا کدهای آماده هم توی خود برنامه وجود داره که میشه ازشون استفاده کرد
    ولی اینکه چطوری میشه پایه های دو (یا چند تا TTL) رو به صورت اینترنال و با برنامه نویسی به هم دیگه ارتباط داد واقعا سخت به نظرم میاد
    اگه میشه یه چند خط برنامه نمونه واسه ارتباط دو تا TTL واسم بنویس :


    دیدگاه


      #17
      پاسخ : طراحی چند TTL بر روی CPLD

      اگه برنامه نهایی شما توی XC9536 جابشه میتونید ازش استفاده کنید. مثلا همین مداری که گذاشتین به راحتی تو این آی سی قابل پیاده کردن هست

      خوب حالا شما نیاز به یک مرجع فارسی برای آموزش VHDL دارین که پیش نهاد من کتاب زیر هست
      http://www.naghoospress.ir/bookview.aspx?bookid=1485903

      اما در مورد اتصالات داخل CPLD
      فرض کنید میخوایم یه مدار خیلی ساده مثل شکل زیر رو پیاده کنیم


      توی عکس بالایی دوتا سیم هست که یکی بارنگ آبی و یکی هم با رنگ زرد مشخص کردام این دوتا سیم داخل CPLD هست و از طریق گیتهای ورودی مقدار میگیرند .
      برای تعریف این حالت ها از SIGNAL استفاده میشه .



      کد:
      library IEEE;
      use IEEE.STD_LOGIC_1164.ALL;
      
      entity test is
      
        Port ( 	 
      					INPUT_A     : in STD_LOGIC;
      					INPUT_B     : in STD_LOGIC;
      					INPUT_C     : in STD_LOGIC;					
      					OUTPUT_DATA   : OUT STD_LOGIC);
      end test;
      
      architecture Behavioral of test is
      
      	SIGNAL SEG_TEMP1 : STD_LOGIC ; 
      	SIGNAL SEG_TEMP2 : STD_LOGIC ;
      
      begin
      
      --********************************************************
      	SEG_TEMP1 <= INPUT_A OR INPUT_B ;
      	SEG_TEMP2 <= NOT INPUT_C;
      
      	OUTPUT_DATA <= SEG_TEMP1 AND SEG_TEMP2;
      			
      --********************************************************
      
      end Behavioral;

      دیدگاه


        #18
        پاسخ : طراحی چند TTL بر روی CPLD

        واقعا مرسی از اینکه این همه وقت صرف کردی @};-
        ولی واسه کوچیک سازی چند تا TTL ناقابل این همه برنامه نویسی اصلا با عقل جور در نمیاد :eek:
        اونم برنامه نویسی واسه تک تک گیت ها و پایه ها
        این طوری واسه هم بندی 8 تا TTL که پروژه نهاییم هست پدرم در میاد! oo:
        ببین نظرت در مورد این روش چیه :











        به نظرت جواب میده؟
        ولی ظاهرا واسه همه TTL ها نداره! :cry:

        دیدگاه


          #19
          پاسخ : طراحی چند TTL بر روی CPLD

          نوشته اصلی توسط Squall
          ولی واسه کوچیک سازی چند تا TTL ناقابل این همه برنامه نویسی اصلا با عقل جور در نمیاد :eek:
          اونم برنامه نویسی واسه تک تک گیت ها و پایه ها
          این طوری واسه هم بندی 8 تا TTL که پروژه نهاییم هست پدرم در میاد! oo:
          دقیقا همین طور هست که گفتین ولی هدف من آشنا شدن با نحوه استفاده از signal بود البته signal مفهوم دیگه ای داره و نمیشه گفت که فقط یه تکه سیم برای اتصال هست. اما کد اصلی برای اون سه تا گیت and - or - not بالایی به صورت زیر هست

          کد:
          library IEEE;
          use IEEE.STD_LOGIC_1164.ALL;
          
          entity test is
          
            Port ( 	 
          					INPUT_A     : in STD_LOGIC;
          					INPUT_B     : in STD_LOGIC;
          					INPUT_C     : in STD_LOGIC;					
          					OUTPUT_DATA   : OUT STD_LOGIC);
          end test;
          
          architecture Behavioral of test is
          
          begin
          
          
          --********************************************************
          
          	OUTPUT_DATA <= NOT INPUT_C AND ( INPUT_A OR INPUT_B );
          			
          --********************************************************
          
          end Behavioral;
          همون طور که میبینید اصلا هیچ signal هم تعریف نشده و در حقیقت نیازی هم به تعریف نبود


          در مورد عکس بالایی که گذاشتین من اسم ورودی ها و خروجی ها رو تغییر دادام


          و یه کد نمونه به صورت زیر براش نوشتم
          کد:
          library IEEE;
          use IEEE.STD_LOGIC_1164.ALL;
          
          entity test is
          
            Port ( 	 
          				HC_174_INPUT   : in STD_LOGIC_VECTOR(4 DOWNTO 0);
          				HC_174_CLK    : in STD_LOGIC;
          				HC_174_MR    : in STD_LOGIC;
          				HC_174_OUTPUT  : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
          
          				HC_157_INPUT_B  : in STD_LOGIC_VECTOR(3 DOWNTO 0);
          				HC_157_INPUT_A  : in STD_LOGIC_VECTOR(1 DOWNTO 0);
          				HC_157_OUTPUT  : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );
          
          end test;
          
          architecture Behavioral of test is
          
          	SIGNAL SIG_HC174  :STD_LOGIC_VECTOR(2 DOWNTO 0);
          
          begin
          
          
          	PROCESS (HC_174_CLK,HC_174_MR)
          	BEGIN
          	
          		IF HC_174_MR='1' THEN
          		
          			SIG_HC174 <= "000";
          			HC_174_OUTPUT <= "00";
          	
          		ELSIF RISING_EDGE(HC_174_CLK) THEN
          
          			SIG_HC174 <= HC_174_INPUT(4 DOWNTO 2);
          			HC_174_OUTPUT <= HC_174_INPUT(1 DOWNTO 0);
          			
          		END IF;
          		
          	END PROCESS;
          	
          	
          	
          	PROCESS (SIG_HC174(2))
          	BEGIN
          	
          		IF SIG_HC174(2)='1' THEN
          		
          			HC_157_OUTPUT <= HC_157_INPUT_B;
          		
          		ELSE
          			
          			HC_157_OUTPUT(1 DOWNTO 0) <= SIG_HC174 (1 DOWNTO 0);
          			HC_157_OUTPUT(3 DOWNTO 2) <= HC_157_INPUT_A;
          		
          		END IF;
          
          	END PROCESS;	
          	
          	
          
          end Behavioral;

          دیدگاه

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