কীভাবে ভিএইচডিএলে একটি শীর্ষ মডিউলে একটি নিম্ন মডিউলের অভ্যন্তরীণ সংকেত আনতে হবে?


11

আমি কীভাবে আমার ভিএইচডিএল উত্স কোডের অভ্যন্তরীণ সংকেতগুলি আমার টেস্টবেঞ্চে আনতে পারি যাতে আমি সেগুলি ওয়েভফর্ম হিসাবে দেখতে পারি? আমি অ্যাক্টিভ এইচডিএল ব্যবহার করি। আমি জানতে চাই যে আমার উদ্দেশ্য অর্জনের জন্য কোনও সরঞ্জাম স্বাধীন পদ্ধতি আছে কিনা। কোন সাহায্য প্রশংসা করা হয়।

আমি এখন এই ত্রুটি পেয়েছি।এখানে চিত্র বর্ণনা লিখুন

আমার উত্স কোড হয়

entity SPI_DAC is
    Port ( 
    -- inputs and oututs
    )
end SPI_DAC;

architecture Behavioral of SPI_DAC is 
    --These are my internal signals 
    signal ch1_byte_data_sent       : STD_LOGIC_VECTOR(23 downto 0)     := x"000000"; 
    signal ch1_byte_cmd_sent        : STD_LOGIC_VECTOR(23 downto 0)     := x"000000";
    --and a few other signals
begin 
    --functionality 
end Behavioral;

আমার টেস্টবেঞ্চ কোডটি

entity tb_spi_dac is
end tb_spi_dac;

architecture behavioral of tb_spi_dac is
    component spi_dac
    port(
    --declaration, inputs and outputs
    );
    end component;
begin
    uut: spi_dac port map(
    --map ports
    );
    --stimulus process
end;

আপনি যখন সিমুলেশন শুরু করবেন তখন আপনার সিমুলেটর সমস্ত উপাদানকে বিশদভাবে জানাবে। এর পরে এটি বাহ্যিক নাম ব্যবহার করে আপনার তৈরি লিঙ্কগুলির সন্ধান করে। আমার কাছে মনে হচ্ছে আপনার পথটি ভুল। আমি আমার উত্তর সম্পাদনা করেছি পাথ নির্মাণ সম্পর্কে আরও বিস্তারিত জানাতে। আপনার নকশা সম্পর্কে জ্ঞান না থাকলে আমি আপনার পথে ভুল বলতে পারি না।
টমাস এস

আমি আমার উত্তরে যেমন বলেছি আপনাকে সত্ত্বার নাম নয় লেবেলটি ব্যবহার করতে হবে। সঠিক পথটি হওয়া উচিত .tp_spi_dac.uut.ch1_byte_data_sent
টমাস এস

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

উত্তর:


11

আপনি যা খুঁজছেন তাকে ভিএইচডিএলে বহিরাগত নাম (বা শ্রেণিবদ্ধ নাম) বলা হয়। এগুলি স্কোপ / শ্রেণিবদ্ধ দৃশ্যমানতা দূরে রাখতে ব্যবহৃত হতে পারে। সিনট্যাক্সটি নীচের উদাহরণের মতো।

<<signal path_name : std_logic_vector(7 downto 0)>>

আপনি বাহ্যিক নামের সাথে ধ্রুবক এবং ভেরিয়েবল অ্যাক্সেস করতে পারেন। আপনাকে বাহ্যিক প্রকারের ধরণটি পরিবর্তন করতে হবে যদিও। আপনি পড়ার / লেখার অ্যাক্সেসের জন্য বাহ্যিক নামগুলি সরাসরি ব্যবহার করতে পারেন। তবে আপনার পঠনযোগ্যতা উন্নত করার জন্য আপনার এলিয়াসগুলি ব্যবহার করা উচিত।

alias signal_name is 
    <<signal path_name : std_logic_vector(7 downto 0)>>;

বাহ্যিক নামটিতে আপনি যে উপাদানটি অ্যাক্সেস করতে চান তার পথ থাকতে হবে। পথটি পরম বা আপেক্ষিক হতে পারে। আপনার পথের পৃথক উপাদানগুলি বিন্দু দ্বারা পৃথক করা হয়। মনে রাখবেন যে আপনাকে উদাহরণ / প্রক্রিয়া / সত্তা / ... এর লেবেল সরবরাহ করতে হবে এবং নামটি নয়। পরম পথটি .আপনার শীর্ষ স্তরের নাম অনুসরণ করে শুরু হয় start আপেক্ষিক পাথের জন্য আপনি ^শ্রেণিবিন্যাসের উপরে উঠতে ব্যবহার করতে পারেন । কিছু প্যাকেজ থেকে ধ্রুবক / সিগন্যাল ব্যবহার @করার সময় আপনি একটি লাইব্রেরিতে স্থানান্তর করতেও ব্যবহার করতে পারেন ।

পরম পথের একটি উদাহরণ হ'ল

.tb_name.instance_label.sub_instance_label.signal_name

টেস্টবেঞ্চ থেকে একই উপাদানের অ্যাক্সেস করতে আপনার ব্যবহার করতে পারেন এমন আপেক্ষিক নামের সাথে

instance_label.sub_instance_label.signal_name

আপনি যখন সাব_আইন্সট্যান্স থেকে কিছু টেস্টবেঞ্চ সিগন্যাল / ধ্রুবক অ্যাক্সেস করতে চান আপনি ব্যবহার করতে পারেন

^.^.constant_name

কনফিগার লাইব্রেরিতে অবস্থিত একটি কনফিগার প্যাকেজে অন্য কোনও ধ্রুবক অ্যাক্সেস করতে আপনি ব্যবহার করতে পারেন

@config.pkg_name.other_constant_name

আপনি আপনার সিমুলেটর ডিজাইন / লাইব্রেরী ব্রাউজার ব্যবহার করতে পারেন যেমন ডেভিড সঠিক পথের নামটি সন্ধানের জন্য নির্দেশ করেছেন।

এই বৈশিষ্ট্যটি ভিএইচডিএল -2008 এ যুক্ত করা হয়েছে তাই এটি ইতিমধ্যে ভিএইচডিএল -2008 সমর্থনকারী সমস্ত সরঞ্জাম দ্বারা সমর্থন করা উচিত (আমার মনে হয় অ্যাক্টিভ এইচডিএল সহ)। বেশিরভাগ সিমুলেটর ডিফল্টরূপে ভিএইচডিএল -2008 ব্যবহার করে না তবে এটি সক্ষম করতে একটি কমান্ড লাইন আর্গুমেন্ট বা কনফিগারেশন বিকল্প সরবরাহ করে।


আপনার পরামর্শ অনুযায়ী আমি চেষ্টা করেছিলাম। ওরফে ch1_byte_data_sent হল << সিগন্যাল B আমি যখন এটি করি তখন আমি একটি "সনাক্তকারী বা স্ট্রিং আক্ষরিক প্রত্যাশিত" ত্রুটি পাই। কোন ধারণা কেন আমি ত্রুটি পেতে পারি? (পোস্টের সাথে যে কোনও ভুলের জন্য দুঃখিত, আমার এখানে প্রথমবার!)
সুহাসিনী

আমার উত্তর যথেষ্ট পরিষ্কার হতে পারে না। ব্যবহার করার সময় aliasআপনাকে একটি নতুন বিবৃতিতে অ্যাসাইনমেন্টটি লিখতে হবে। সুবিধাটি হ'ল আপনি দীর্ঘ বাহ্যিক নামের পরিবর্তে উপনামের নামটি ব্যবহার করতে পারেন।
টমাস এস

1

আমি কীভাবে আমার ভিএইচডিএল উত্স কোডের অভ্যন্তরীণ সংকেতগুলি আমার টেস্টবেঞ্চে আনতে পারি যাতে আমি সেগুলি ওয়েভফর্ম হিসাবে দেখতে পারি?

একটি পরীক্ষা বেঞ্চ অনুকরণটি বোঝায় - কোনও বন্দর ছাড়াই একটি সত্তা সাধারণত সংশ্লেষণের যোগ্য নয়।

আমি কখনই অ্যাক্টিভ-এইচডিএল ব্যবহার করি নি আমি বুঝতে পারি এটির একটি ডিজাইন ব্রাউজার রয়েছে যা আপনাকে আপনার ওয়েভফর্মে প্রদর্শন করার জন্য আপনার শ্রেনীর নীচে সিগন্যাল বাছাই করতে দেয় যাতে অ্যালডেসের সংকলন এবং সিমুলেশন ভিডিওটি দেখুন (5:02, মিনিট: সেকেন্ড)।

এবং এখনই আমি এই ধারণাটি পেয়েছি যে ভিডিওটি বিভ্রান্তির কারণ হতে পারে, সম্ভবত এই বিশেষ ক্ষেত্রে।

শেষ থেকে 2:22 এ ভিডিওটিতে একটি ড ফাইল (ম্যাক্রো) দেখায় যা সিমুলেশনটি নিয়ন্ত্রণ করে:

2:22 ফাইল করুন

যেখানে আমরা দেখতে পাই শীর্ষ নকশার প্রতিটি স্তরের প্রতিটি সংকেত তরঙ্গ কমান্ডের সাথে তরঙ্গরূপ প্রদর্শনে যুক্ত করা হয়েছে। ডিজাইনের স্তরক্রমের যে কোনও জায়গায় সিগন্যাল নির্দিষ্ট করাও সম্ভব হওয়া উচিত।

মূল ধারণাটি হ'ল প্রচুর সিমুলেটর আপনাকে ওয়েভফর্ম প্রদর্শনের জন্য সংকেত নির্ধারণের (এবং কিছুকে ভেরিয়েবলগুলি অনুমতি দেওয়ার জন্য) অনুমতি দেয়।

এই সংক্ষিপ্ত ভিডিওটি সহকারী স্তরক্রম স্তরগুলির জন্য কেবল সংকেত দেখায় না। (একটি সংক্ষিপ্ত ভিডিও উপস্থাপনায় প্রচুর স্টাফ রয়েছে)।

আমি জানতে চাই যে আমার উদ্দেশ্য অর্জনের জন্য কোনও সরঞ্জাম স্বাধীন পদ্ধতি আছে কিনা।

উপরে উল্লিখিত হিসাবে আপনার উদ্দেশ্যটি মনে হচ্ছে অভ্যন্তরীণ সংকেতগুলি তরঙ্গরূপ হিসাবে দেখা।

এখন খারাপ সংবাদের জন্য - সিমুলেটর বৈশিষ্ট্য বা ইন্টারফেসের জন্য কোনও মানীকরণ নেই, তরঙ্গাকার ডাম্পের জন্য নির্ধারিত সংকেত ইত্যাদি These এগুলি সমস্ত বাস্তবায়িত সংজ্ঞায়িত।

এটির বেশ গ্যারান্টিযুক্ত আপনি কোনও ডিজাইনের স্তরক্রমের যে কোনও জায়গায় তরঙ্গরূপের দর্শকের কাছে কোনও তরঙ্গরূপ প্রদর্শনকারী বা ওয়েভফর্ম ডাম্প ফাইলের যে কোনও বাস্তবায়ন যা অনুকরণ করে, এটি করার পদ্ধতিটি নির্ধারিত সংজ্ঞায়িত করতে পারেন।

সুসংবাদটি হ'ল তারা একে অপরের কাছ থেকে ধারণাগুলি অনুলিপি করার ঝোঁক রাখে যেমন ডু ফাইলগুলি, যা আপনি বহনযোগ্যতার জন্য প্রোগ্রামগতভাবে তৈরি করতে পারেন, একাধিক বাস্তবায়ন প্ল্যাটফর্মে কার্যকরী যাচাইকরণের বিবরণী একটি সাধারণ ডাটাবেস ব্যবহার করে সিনট্যাক্স এবং শব্দার্থবিজ্ঞানের পার্থক্য কাটিয়ে ওঠেন। প্রোগ্রামটিমে টুলস চালনার জন্য কমান্ড লাইন ইন্টারফেস সিনট্যাক্সের মধ্যেও পার্থক্য থাকতে পারে।

বহনযোগ্যতার ধারণাটি একাধিক জিইআইআইকে গ্রেফতার করে না।


0

Xilinx এর মতো সরঞ্জামগুলির অভ্যন্তরীণ সিগন্যালগুলি দেখার বিকল্প রয়েছে।

সাধারণ সরঞ্জাম-স্বাধীন পদ্ধতিটি পৃথক আউটপুট লাইনগুলি ঘোষণা করছে এবং এই লাইনের সাথে অভ্যন্তরীণ সংকেতগুলি সংযুক্ত করছে।


আমি আমার ইনপুট এবং আউটপুট পোর্টগুলির সাথে হস্তক্ষেপ করতে চাই না; সুতরাং কোনও নতুন আউটপুট লাইন ঘোষণা করতে পারে না। আমি আমার টেস্টবেঞ্চে সিগন্যালগুলি ঘোষণা করেছি তবে তরঙ্গরূপে কোনও আউটপুট দেখতে পাচ্ছি না (ফানসিওনালিটি বাস্তবায়ন না করে কেবল আমার শূন্যের প্রাথমিক মূল্য দেখায়)। এটা করতে অন্য কোন উপায় আছে কি?
সুহাসিনী

0

আপনি যদি টেস্টবেঞ্চে সিগন্যালগুলি ঘোষণা করে থাকেন তবে কোনও আউটপুট দেখতে না পারলে আপনার ইনস্ট্যান্টেশন বিবৃতিতে সমস্যা হতে পারে যেখানে আপনি সত্তাকে পরীক্ষা করার জন্য ইনস্ট্যান্ট করেন ate কোনও সত্তা ইনস্ট্যান্টেশন বিবৃতি বা উপাদান ইনস্ট্যান্টেশন ব্যবহার করে আপনি এটি সঠিকভাবে ইনস্ট্যান্ট করেছেন কিনা তা পরীক্ষা করে দেখুন। আপনার টেস্টবেঞ্চের সিগন্যালগুলি পরীক্ষার অধীনে সত্তার সাথে সংযুক্ত রয়েছে তা নিশ্চিত করুন। যদি এটি সমস্যার সমাধান না করে, টেস্টবেঞ্চ কোডটি পোস্ট করুন যাতে আমরা সহায়তা করতে পারি।


টমাস যা বলেছিলেন, আমার সমস্যাটিকে ঠিকঠাকভাবে সম্বোধন করে। আমি পূর্বে উল্লিখিত ত্রুটিটি সমাধান করেছি, যা ল্যাটিসের আইসিইউকিউব 2 ডিজাইন সফ্টওয়্যার দ্বারা সরবরাহিত অ্যাক্টিভ-এইচডিএলটিতে ভিএইচডিএল 1993 এ ডিফল্ট সেট হওয়ার কারণে উদ্ভূত হয়েছিল। আমি যখন সিমুলেশনটি আরম্ভ করার চেষ্টা করি তখন আমি মারাত্মক বিস্তৃতি ত্রুটির মুখোমুখি হই। কেন এটি ঘটে তা সন্ধান করার চেষ্টা করছি, আমি আশা করি এটি কোনও সীমাবদ্ধ লাইসেন্স ইস্যু নয়।
সুহাসিনী

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