JTAG ব্যবহার করে একাধিক এফপিজিএ প্রোগ্রামিং


9

আমার কাছে একটি স্প্রিটান F টি এফপিজিএ সংযোগকারী একটি জেটিএইচ চেইন রয়েছে যা আমি আইএসই আইএমএপিএটিটি ব্যবহার করে প্রোগ্রাম করি। সফ্টওয়্যারটি সফলভাবে এবং যে কোনও ক্রমে 4 টি এফপিজিএর যে কোনও কঠোর উপসেটটি প্রোগ্রাম করতে পারে। যাইহোক, আমি যখন সমস্ত চারটি এফপিজিএ প্রোগ্রাম করার চেষ্টা করি তখন সর্বশেষ এফপিজিএর ডোন পিনটি বেশি যায় না এবং প্রোগ্রামিং ব্যর্থ হয়।

এই অদ্ভুত আচরণের কারণ কী হতে পারে?

মন্তব্য:

  1. তিনটি এফপিজিএ প্রোগ্রাম করার পরে, চতুর্থ এফপিজিএর জন্য স্ট্যান্ডার্ড রেজিস্ট্রারের INIT_B বিট 0, যদিও INIT_B পিন বেশি। তৃতীয় এফপিজিএ প্রোগ্রাম করার ঠিক আগে, সেই বিটটি 1 ছিল This এটি সুপারিশ করে যে চতুর্থ এফপিজিএ লক হয়ে গেছে।
  2. সিলেক্টম্যাপের সাথে প্রোগ্রাম করার সময়, আমি কোনও সমস্যা ছাড়াই চারটি এফপিজিএ প্রোগ্রাম করতে পারি।
  3. আমি যখন সিলেটম্যাপ ব্যবহার করে তিনটি এফপিজিএ প্রোগ্রাম করি, তখন চতুর্থটি জেটিএইচ ব্যবহার করে প্রোগ্রাম করা যায় না।
  4. চারটি সম্পন্ন পিনগুলির প্রতিটি 4.7K ওহম প্রতিরোধকের মাধ্যমে 3V3-তে টানা হয় এবং তারপরে একসাথে আবদ্ধ হয়।

আমি যে জিনিসগুলি চেষ্টা করেছি :

  1. চেইন থেকে একটি এফপিজিএ সংযোগ বিচ্ছিন্নকরণের ফলে বাকি 3 টি এফপিজিএ এখনও প্রোগ্রাম করার অনুমতি দেয়।

  2. 330 ওহম রেজিস্টারের জন্য সর্বশেষ এফপিজিএর 4.7K ওহম পুল-আপ রেজিস্টার অদলবদল করে সমস্যার সমাধান হয় না।


2
"শেষ এফপিজিএ" বলতে কী বোঝ? কারণ ইউজার গাইডে বলা হয়েছে যে "The first device in a serial daisy chain is the last to be configured."আপনি চেইনে শেষ বা কনফিগার হওয়া সর্বশেষ (চেইনে প্রথম) বোঝাতে চান? আপনি একটি পরিকল্পনাবদ্ধ প্রদান করতে পারেন?
এম্বেডড.কাইল

2
P59-তে এই বিবৃতি আমাকে অন্যথায় ভাবতে বাধ্য করে"If the Spartan-6 device is configured via JTAG, the configuration instructions occur independent from the mode pins."
এম্বেড

নিজেকে ইউজার গাইডের সাথে পরিচিত করার পরে (এফপিজিএ কাজ করার পরে প্রায় 6 মাস কেটে গেছে), আমি আপনার পরিভাষা থেকে কিছুটা বিভ্রান্ত হয়েছি। ডেইজি চেইন সিরিয়াল প্রোগ্রামিংয়ের সাথে একত্রে ব্যবহৃত হয়। কোন ক্ষেত্রে, DONEপিনগুলি এক সাথে আবদ্ধ হয়। JTAG এর জন্য একাধিক ডিভাইস প্রোগ্রামিংকে বাউন্ডারি-স্ক্যান চেইন বলে। ইন Chapter 3: Boundary-Scan and JTAG Configuration, DONEপিনের একমাত্র উল্লেখ "If JTAG is the only configuration mode, then PROGRAM_B, INIT_B, and DONE can be tied High to a 330 resistor."তাই পিন কি DONEএকমাত্র সমস্যা কম? এটি সঠিকভাবে প্রোগ্রাম করে?
এম্বেডড.কাইল


আমি মনে করি যে আপনি 3 পেতে পারেন তবে 4 নয় এটি একটি সূত্র। : চালু ডিজাইনিং সীমানা স্ক্যান সিস্টেম JTAG প্রোগ্রামার গাইডের অধ্যায় 4 চেক আউট xilinx.com/support/sw_manuals/2_1i/download/jtag.pdf
embedded.kyle

উত্তর:


6

DONEপিন JTAG প্রোগ্রামিং সময় ব্যবহৃত না এবং উচ্চ বাঁধা যেতে পারে:

যদি JTAG একমাত্র কনফিগারেশন মোড হয়, তবে PROGRAM_B, INIT_B, এবং DONE কে 330Ω রোধকের সাথে উচ্চ করে বাঁধতে পারে। (P57)

তবে, যদি সিরিয়াল প্রোগ্রামিং ব্যবহার করা হয়, তবে সমস্ত DONEপিনগুলি এক সাথে বেঁধে DriveDoneরাখতে হবে এবং প্রথমটি বাদে সমস্ত ডিভাইসের জন্য অক্ষম করা উচিত:

সিরিয়াল ডেইজি চেইনে সমস্ত ডিভাইসের জন্য ডোন পিনগুলি সংযোগ করা গুরুত্বপূর্ণ। ডোন পিনগুলি সংযোগ করতে ব্যর্থ হওয়ার কারণে কনফিগারেশন ব্যর্থ হতে পারে। (P135)

প্রথম ব্যতীত অন্য সমস্ত ডিভাইসগুলি ডোন পিনে ড্রাইভার অক্ষম করতে হবে। (P135)

যদি উভয়ই ব্যবহার করতে হয় তবে দুটি বিকল্প রয়েছে:

বিকল্পভাবে, ড্রাইভার সমস্ত ডোন পিনের জন্য অক্ষম করতে পারে এবং সমস্ত ডিভাইস প্রকাশ করার পরে সিগন্যাল হাই টানতে একটি বাহ্যিক পুল-আপ প্রতিরোধক যুক্ত করা যেতে পারে। (P135)

ডিবাগিংয়ের উদ্দেশ্যে, সাধারণ ডোনে সিগন্যাল থেকে স্বতন্ত্র ডোন পিনগুলি সংযোগ বিচ্ছিন্ন করার উপায়টি প্রায়শই সহায়ক, যাতে ডিভাইসগুলি সিরিয়াল বা জেটিএফ ইন্টারফেসের মাধ্যমে স্বতন্ত্রভাবে কনফিগার করা যায়। (P135)

আপনার ক্ষেত্রে, আমি মনে করি যে এগুলি সংযুক্ত করে এবং DONEপিনটি অক্ষম করার সময় এগুলি সমস্ত উচ্চে বেঁধে ফেলা ভাল way

সমস্ত পৃষ্ঠা নম্বর ব্যবহারকারী নির্দেশকে রেফারেন্স করে


হুমম ... আপনি যদি INIT_Bউচ্চ বেঁধে INIT_Bথাকেন এবং স্ট্যাটাস রেজিস্টারে বিটটি 0 হয়, এটি আমার কাছে একটি হার্ডওয়্যার ব্যর্থতা নির্দেশ করবে। আপনি যদি না চিপটি স্বাধীনভাবে প্রোগ্রাম করতে পারেন যা আমি মনে করি আপনি বলেছিলেন যে আপনি পারেন could DONEপ্রোগ্রামিং করার সময় তাই আমি জানি না কি অবস্থা রেজিস্টার যে বিন্দু সময় করে পিন হাই-জেড যায়। পূর্ববর্তী এফপিজিএ স্থিতির নিবন্ধের এলএসবি যদি 1 হয়, তবে এটি সেই ডিভাইসে একটি সিআরসি ত্রুটি নির্দেশ করে যা পরবর্তীটির প্রোগ্রামিং রোধ করতে পারে।
embedded.kyle

সমস্যা পাওয়া গেছে (আমার সমাধান দেখুন)। আপনার সাহায্যের জন্য ধন্যবাদ।
র্যান্ডোম্লু

3

দেখা গেল অপরাধীটি INIT_Bপিন ছিল । যদিও প্রথম দিকে কয়েকটি এফপিজিএ প্রোগ্রাম করা হয়েছিল, উচ্চ টানলেও, INIT_Bঅভ্যন্তরীণ টান- ডাউনের কারণে পিনটি ধীরে ধীরে নীচে এবং নীচে টানতে হয়েছিল।

তিনটি এফপিজিএ প্রোগ্রাম করার পরে, INIT_Bচতুর্থ এফপিজিএর পক্ষে INIT_Bযুক্তিকে কম হিসাবে ব্যাখ্যা করার জন্য পিনটি যথেষ্ট পরিমাণে টানানো হয়েছিল, যার ফলে চতুর্থ এফজিপিএকে জেটিএইজে প্রোগ্রামিং করতে বাধা দেয়।


মূল কারণ ভাগ করে নেওয়ার জন্য ধন্যবাদ। আমি এই প্রশ্নের উত্তরের জন্য এটি পরীক্ষা করেই দেখছি যেহেতু এটি এমন বিরল আচরণ। সমস্যার সমাধান কী ছিল? 330 এর চেয়ে শক্তিশালী পুলআপΩ?
embedded.kyle

দেখা যাচ্ছে যে বিটজন অপশন রয়েছে যা নির্দিষ্ট করার জন্য INIT_Bপ্রোগ্রামিংয়ের পরে নীচে টানতে পিনটি টানতে হবে।
র‌্যান্ডম্বলিউ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.