اطلاعیه

Collapse
No announcement yet.

نحوه وصل یک بیت به یک باس در دستور portmap

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

    نحوه وصل یک بیت به یک باس در دستور portmap


    تصور کنید یک component از یک کانتر 32 بیت در برنامه وارد کنید
    این component یک پین clock داره و یک باس 32 بیت-حالا مثلا من فقط میخوام بیت 28 از باس component رو وصل کنم به یک سیگنال-چطور باید بنویسم دستور port map رو؟
    ممنون میشم راهنماییم کنید

    #2
    پاسخ : نحوه وصل یک بیت به یک باس در دستور portmap

    یعنی هیچ کس نمیدونه؟؟؟؟!!!!!!! :eek: :cry2:

    دیدگاه


      #3
      پاسخ : نحوه وصل یک بیت به یک باس در دستور portmap

      درود
      یه سیگنال 32 بیتی تعریف کن و توی component از ا,ن استفاده کن. (معرفی کن)
      حالا هر جا که می خوای مثلا بیت 28 رو ببینی، بیت 28 این سیگنال تعریف شده رو استفاده کن. مثلا یکی از پایه ها رو که به عنوان خروجی تعریف کردی رو مساوی بیت 28 سیگنال تعریف شده بذار:
      output <= definedsignal(28);
      مـن هیچ ندانم که مرا آن که سرشت
      از اهل بهشت کرد یا دوزخ زشت
      جامی و بتی و بربطی بر لب کشت
      اين هر سه مرا نقد و تو را نسیه بهشت

      دیدگاه


        #4
        پاسخ : نحوه وصل یک بیت به یک باس در دستور portmap

        ممنونم

        حالا اگه نخوام به یک پین از component سیگنالی وصل کنمو باید تو دستور port map چی بنویسم؟
        مثلا یک پینی داره که نمیخوام ازش استفاده کنم-میخوام خالی بمونه و از بقیه استفاده کنم

        دیدگاه


          #5
          پاسخ : نحوه وصل یک بیت به یک باس در دستور portmap

          تو port map سیگنال رو به صوت کامل تعریف می کنی و هر بلایی خواستی سرش بیاری توی برنامه با نوشتن کد انجام میدی.
          اگه تو component این سیگنال به صورت ورودی هست و یه ورودی داری که می خوای از بیت 0 تا 28 رو بهش بدی و بقیش رو (تا 32) استفاده نکنی، باز هم یه سیگنال 32 بیتی تعریف کن و از 0 تا 28 بهش سیگنالی که می خوای بدی بده و بقیه اش رو صفر بذار. بعد این سیگنال 32 بیتی رو به تو port map بذار.

          اگه از core استفاده می کنی، تو port map سیگنالی که نمی خوای استفاده کنی تعریف نکن یا comment کنش.
          مـن هیچ ندانم که مرا آن که سرشت
          از اهل بهشت کرد یا دوزخ زشت
          جامی و بتی و بربطی بر لب کشت
          اين هر سه مرا نقد و تو را نسیه بهشت

          دیدگاه


            #6
            پاسخ : نحوه وصل یک بیت به یک باس در دستور portmap

            ممنونم
            پس راهی نداره که خالی بمونه.حتما باید یک سیگنال بهش وصل شه

            یه مشکل دیگه هم دارم و اون اینکه وقتی میخوام 2 تا متغیر رو با دستور rem باقیمانده بگیرم-میگه نمیشه و باید constant باشه

            مثلا a rem b=>c
            باید کار خاصی انجام بدم؟

            دیدگاه


              #7
              پاسخ : نحوه وصل یک بیت به یک باس در دستور portmap

              من برا تقسیم از core استفاده می کنم. با core باقیمانده رو هم می تونی گیری.
              ولی بدون core فکر می کنم نمیشه تقسیم انجام داد. احتمالا فقط تقسیم بر توانی از دو و یا تقسیم دو عدد ثابت رو بتونی بدون core انجام بدی که اونم fpga انجام نمیده بلکه کامپایلر خودش حساب می کنه (چون اعداد ثابت هستند).
              مـن هیچ ندانم که مرا آن که سرشت
              از اهل بهشت کرد یا دوزخ زشت
              جامی و بتی و بربطی بر لب کشت
              اين هر سه مرا نقد و تو را نسیه بهشت

              دیدگاه


                #8
                پاسخ : نحوه وصل یک بیت به یک باس در دستور portmap

                این آخرین سوالمه :biggrin:

                یک سیگنال integer تعریف کردم برای یک کانتر-وقتی یک باس std_logic داشتیم,برای دسترسی به هر خط باس, مینوشتیم مثلا (5)x یعنی بیت پنجم-برای دسترسی به بیت های integer به این شکل, چیکار کنم؟
                میخوام از بیت 5,بدم به کلاک یک کانتر دیگه

                مشکل اولم همین بود

                دیدگاه


                  #9
                  پاسخ : نحوه وصل یک بیت به یک باس در دستور portmap

                  سوالام زیاد شد دیگه جواب نمیدین :cry2:
                  این آخریش بود-لازم دارم
                  من چجوری به بیت های سیگنال integer دسترسی داشته باشم؟

                  دیدگاه


                    #10
                    پاسخ : نحوه وصل یک بیت به یک باس در دستور portmap

                    کد:
                    signal a:integer range 0 to 255;
                    signal a_bit : std_logic_vector(7 downto 0);
                    architecture ...
                    begin
                    
                    a_bit <= a;
                    
                    end;
                    
                    OR
                    
                    signal a:integer range 0 to 255;
                    signal a_bit : std_logic;
                    architecture ...
                    begin
                    
                    a_bit <= conv_std_logic_vector(a,8)(5);
                    
                    end;

                    دیدگاه


                      #11
                      پاسخ : نحوه وصل یک بیت به یک باس در دستور portmap

                      نوشته اصلی توسط مرجان کهندل
                      ممنونم

                      حالا اگه نخوام به یک پین از component سیگنالی وصل کنمو باید تو دستور port map چی بنویسم؟
                      مثلا یک پینی داره که نمیخوام ازش استفاده کنم-میخوام خالی بمونه و از بقیه استفاده کنم
                      جای اون سیگنالی که نمیخوای بنویس open
                      خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...

                      دیدگاه

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