Advertisement
Sayaf_ahmed

4-bit Register explanation

Apr 25th, 2021
656
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module FourBitReg(a0, a1, a2, a3, clk, nreset, q0, q1, q2, q3);//register الخاصة بل module ال
  2.   input a0, a1, a2,a3;//register الانبت الخاصة بل
  3.   input nreset, clk;
  4.    output q0, q1, q2, q3; //register الاوتبت الخاصة بل
  5.  
  6.  
  7.   Dflipflop Q0(a0, clk, nreset, q0);//من الانبت bit كل واحده تكون مسؤووله عن تخزين Dflipflops نقوم بتكوين 4
  8.   Dflipflop Q1(a1, clk, nreset, q1);
  9.   Dflipflop Q2(a2, clk, nreset, q2);
  10.   Dflipflop Q3(a3, clk, nreset, q3);
  11.  
  12. endmodule
  13.  
  14.  
  15.  
  16. module FourBitReg_tb; //test module
  17.   reg a0, a1, a2, a3;//متغيرات لتخزين قيم الانبت و الاوتبت
  18.   reg clk, nreset;
  19.   wire q0, q1, q2, q3;
  20.  
  21.     reg[3:0] counter; //test data يقوم بتخزين اين وصلنا في ال counter
  22.     reg[3:0] in;//متغير يحمل قيمة الانبت
  23.     FourBitReg Register(a0, a1, a2, a3,clk, nreset, q0, q1, q2, q3);//الوحدة تحت الاختبار
  24.  
  25.   initial begin
  26.   a0 = 1'b0; a1 = 1'b0; a2=1'b0; a3 = 1'b0;//قيم ابتدائية للمتغيرات
  27.   clk = 1'b0; nreset = 1'b1;
  28.  
  29.   $monitor("a0a1a2a3 = %b%b%b%b, clk=%b, nreset=%b, q0q1q2q3=%b%b%b%b",
  30.            a0, a1, a2, a3, clk, nreset, q0, q1, q2, q3);//نراقب قيم المتغيرات و نطبع رسالة عند تغيرها
  31.   end  
  32.   initial begin
  33.   for(counter =0; counter < 4'b1000; counter = counter + 1'b1) begin
  34.     in = $random%16; //نختار رقم عشوائي بين 0000-1111
  35.     a0 = in[0];//in من bit تساوي اول a0
  36.     a1 = in[1];//in من bit تساوي ثاني a1
  37.     a2 = in[2];//in من bit تساوي ثالث a2
  38.     a3 = in[3];//in من bit تساوي رابع a3
  39.     #10;
  40.     if(counter == 3'b011)begin
  41.       nreset = 0;
  42.     end
  43.   end
  44.   $finish; //test ننهي الاختبار بعد انتهاء ال  
  45.   end
  46.   always begin //clk الكود لتكوين
  47.   #10
  48.   clk = ~clk;
  49.   end
  50. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement