এইচডিএল (হার্ডওয়্যার বর্ণনার ভাষা) হ'ল ব্যবহৃত ধরণের ভাষা, ভেরিলোগ / ভিএইচডিএল বনাম একটি নন-এইচডিএল জাভাস্ক্রিপ্ট।
আরটিএল (রেজিস্ট্রার-ট্রান্সফার লেভেল) হ'ল বিমূর্তির একটি স্তর যা আপনি লিখছেন The আমি যে তিনটি স্তরের উল্লেখ করছি সেগুলি হ'ল আচরণ, আরটিএল, গেট-স্তর level
আচরণের বিমূর্ততার সর্বোচ্চ স্তর রয়েছে যা সামগ্রিক আচরণ বর্ণনা করে এবং প্রায়শই সংশ্লেষযোগ্য নয়, তবে যাচাইকরণের জন্য কার্যকর।
আরটিএল যুক্তি দিয়ে বোঝার মাধ্যমে আপনি যে হার্ডওয়্যারটি চান তা বর্ণনা করে। ফ্লিপ-ফ্লপ, ল্যাচগুলি এবং কীভাবে ডেটা স্থানান্তরিত হয় তা সংজ্ঞায়িত করা হচ্ছে। এটি সংশ্লেষযোগ্য, সংশ্লেষণটি যুক্তিটিকে ব্যবহারের পরিবর্তিত / অনুকূল করতে পারে তবে আচরণটি নয়। নকশাকে আরও অনুকূল করে তোলার জন্য কয়েকটি সময় গেটস ইত্যাদির জন্য ম্যাক্সগুলি স্যুইচ করা।
ভেরিলোগ আরটিএল একটি ফ্লিপ-ফ্লপ বোঝায়:
logic a; //logic is SystemVerilog, could be a 'reg'
logic k; // Driven by RTL not shown
always @(posedge clk or negede rst_n) begin
if (~rst_n) begin
a <= 'b0 ;
end
else begin
a <= k ;
end
end
সম্মিলিত বিটওয়াইজ অপারেটরগুলি:
logic [1:0] n;
logic [1:0] m;
logic [1:0] result;
assign result = n & m ;
গেট স্তরটি হ'ল বেস লজিক গেটস (ন্যানড, এনওআর, এবং, বা, ম্যাক্স, এফএলআইপি-এফএলওপি) ব্যবহার করে একটি নকশা। এটি সংশ্লেষিত করার দরকার নেই বা সংশ্লেষণ থেকে প্রাপ্ত আউটপুট। এটি বিমূর্ততার সর্বনিম্ন স্তর রয়েছে। এটি হ'ল লজিক গেটস যা আপনি চিপটিতে ব্যবহার করবেন তবে এটিতে স্থায়ী তথ্যের অভাব রয়েছে।
গেট স্তর ভেরিলোগ (উপরের মতো একই ফাংশন):
wire a;
wire k;
DFFRX1 dffrx1_i0 (
.Q (a), //Output
.QN( ), //Inverted output not used
.D (k), //Input
.CK(clk), //Clk
.RN(rst_n)// Active Low Async Reset
);
সংযুক্ত করিতে সক্ষম
wire [1:0] n;
wire [1:0] m;
wire [1:0] result;
AND2X1 and2x1_i0 (
.Y( result[0]),
.A( n[0] ),
.B( m[0] )
);
AND2X1 and2x1_i1 (
.Y( result[1]),
.A( n[1] ),
.B( m[1] )
);