زمان ارسال: 1 سال پیش

verilog22

در این پست به بررسی کد دیکدر و مالتی پلکسر و یه سری توضیحات مربوطه  میپردازیم

پس ادامه مطلب یادتون نره

کد 3 – دیکدر 8*3

module Decoder(I,O);
input [2:0]I;
output [7:0]O;
reg [7:0]O;
always @ ( * )
case(I)
3'b000 : O <= 8'b00000001;
3'b001 : O <= 8'b00000010;
3'b010 : O <= 8'b00000100;
3'b011 : O <= 8'b00001000;
3'b100 : O <= 8'b00010000;
3'b101 : O <= 8'b00100000;
3'b110 : O <= 8'b01000000;
3'b111 : O <= 8'b10000000;
endcase
endmodule

خب ماژول دیکدر یک ورودی و یک خروجی داره.
چون دیکدر 8*3 هست پس ورودی ما باید 3 بیتی و خروجی 8 بیتی باشد
خروجی رو رجیستر reg تعریف کردیم پس نباید برای انتصاب از کلمه assign استفاده کرد.
دستور always یعنی همیشه با شرطی که داخل ( ) براش تعریف میکنیم . * بذارید یعنی همیشه  و شرط های دیگر در کد های بعدی میبینید
نکته : قبل * حتما یه فاصله space بذارید.
در داخل این always از دستور شرطی case استفاده شده که همانند زبان برنامه نویسی سی++ هست.

3'b000 : O <= 8'b00000001;

خط اول یعنی 3 بیت باینری 000 که همون 0 ورودی هست ( میشود مستقیم به جای عبارت 3’b000  فقط 0 گذاشت)
سپس خروجی O رو داخلش مقدار   8’b00000001 رو میریزیم که معادل (1) میباشد  و در خط بعدی به ازای ورودی یک خروجی 2 ریخته شده و به همین ترتیب و در نهایت endcase  و endmodule

کد 4 – مالتی پلکسر 1*4

module mux4to1 (in,select,out);

input [3:0] in;
output out;
reg out;
input [1:0] select;
always @( * )
case (select)
0: out <= in[0];
1: out <= in[1];
2: out <= in[2];
3: out <= in[3];
endcase
endmodule

توضیحات :
خب مثل همه ماژول های دیگه اسم ،ورودی و خروجی و سلکت رو براش تعریف میکنیم ، چون ماکس 1*4 هست نیازمند ورودی 4 بیتی و خط انتخاب 2 بیتی و خروجی تک بیتی هستیم.
در قسمت case با توجه به select اگر 0 باشه ورودی بیت صفرم به خروجی میرود اگر یک باشد ….. 

0

636 views

نویسنده: مهدی موسوی
درباره مهدی موسوی:

دانشجوی رشته کامپیوتر گرایش نرم افزار دانشگاه صنعتی سجاد مشهد . علاقه مند به دنیای اینترنت


  1. مریم گفت:

    کد کانتری که از 0 تا 12 می شمارد
    یکی یکی،دو تا دو تا ، سه تا سه تا
    لطفا حلشو با کد وری لاگ بزارید

    0
  2. با سلام.
    پاسخ شما در پست زیر داده شده است
    http://persianstudent.ir/2016/11/09/verilog-code-part5/
    باتشکر

    0
  3. امیرمهدی گفت:

    سلام مهندس
    یه مالتی پلکس 16 به 1 با استفاده از مالتی پلکس های 4 به 1 میشه طراحی کنید؟؟
    با برنامه نویسی verilog module
    به همراه تست بنچ ها و …

    0
  4. سلام
    برای طراحی مالتی پلکسر 16 به 1 ، اول مالتی پلکسر 4 به 1 را طراحی کنید و از این ماژول در 16 به یک استفاده کنید ، با 5 تا ماژول میتونید طراحی کنید.
    برای تست بنچ ها هم باید حالات مختلف رو در نظر بگیرید،
    اگر اطلاعات بیشتری خواستید تلگرام پیام دهید @mahdi271

    0
  5. کوثر گفت:

    ببخشید ما یه پروژه داریم به زبان وریلاگ می تونید برامون انجامش بدین؟

    0
  6. بله،به ای دی زیر در تلگرام پیام بدید
    @mahdi271

    0

طراحی سایت توسط تیم طراحی دانشجوی ایرانی

© تمامی حقوق مادی و معنوی این وب سایت متعلق به دانشجوی ایرانی می باشد.