Разделы

Листинг модулей на языке Verilog

Module fifo(clk, rst, sda, A0_A2, Int_A, Int_B, Gpb, Gpa);

input clk;rst;sda;[3:0] A0_A2;Int_A;[1:0] Int_B; Gpb;Gpa;[2:0] awr;[2:0] ard;[3:0] rout;wGpb;sdampty;count_1 (.clk(clk), .rst(rst), .inc(sda), .dec(0), .lockinc(wGpb), .lockdec(1), .out(awr));count_2 (.clk(clk), .rst(rst), .inc(Int_A), .dec(0), .lockinc(sdampty), .lockdec(1), .out(ard));ram_1 (.clk(clk), .rst(rst), .awr(awr), .ard(ard), .Gpb(wGpb), .Gpa(sdampty), .sda(sda), .A0_A2(A0_A2), .Int_A(Int_A), .Int_B(rout));_logic compare_logic_1 (.clk(clk), .rst(rst), .awr(awr), .ard(ard), .Gpb(wGpb), .Gpa(sdampty));Int_B = rout;Gpb = wGpb;= sdampty;count(clk, rst, inc, dec, lockinc, lockdec, out);;;;;;;[2:0] out;[2:0] state;@(posedgeclk)(rst)<= 0;(clk)(inc&& !lockinc)<= state + 1;(dec&& !lockdec)<= state - 1;out = state;count(clk, rst, inc, dec, lockinc, lockdec, out);;;;;;;[2:0] out;[2:0] state;@(posedgeclk)(rst)<= 0;(clk)(inc&& !lockinc)<= state + 1;(dec&& !lockdec)<= state - 1;out = state;ram(clk, rst, awr, ard, Gpb, Gpa, sda, A0_A2, Int_A, Int_B);;;[2:0] awr;[2:0] ard;Gpb;Gpa;sda;[3:0] A0_A2;_A;[3:0] Int_B;[3:0] state [7:0];;@(posedgeclk)(rst)(i=0; i<7; i=i+1)[i] <= 4'b0000;(sda && !Gpb)[awr] <= A0_A2;_B = state [ard];_logic(clk, rst, awr, ard, Gpb, Gpa);;;[2:0] awr;[2:0] ard;Gpb;Gpa;

// предварительно

regrGpb;;

// окончательно

regendGpb;;@(posedgeclk, rst)

begin(awr == ard)

// чтобы в начале был обозначен как пустой

if (!rGpb&& !rGpa)= 0;= 1;

else

// в зависимости от предыдущего состояния= rGpb;= rGpa;;

end= 0;= 0;((awr - ard == 1) || (ard - awr == 7))= 1;= 0;((ard - awr == 1) || (awr - ard == 7))= 1;= 0;;;Gpb = endGpb;Gpa = endGpa;_fifo;

// Inputs;;sda;[3:0] A0_A2;_A;

// Outputs[3:0] Int_B;Gpb;Gpa;

// Instantiate the Unit Under Test (UUT)(

.clk(clk),

.rst(rst),

.sda(sda),

.A0_A2(A0_A2),

.Int_A(Int_A),

.Int_B(Int_B),

.Gpb(Gpb),

.Gpa(Gpa)

);

// Clock GeneratorPERIOD = 1;DUTY_CYCLE = 0.4;= 1'b0;

#(PERIOD-(PERIOD*DUTY_CYCLE)) clk = 1'b1;

#(PERIOD*DUTY_CYCLE);

//------------------------------------------

// Init. Reset startup pulse= 1;

#10 rst = 0;begin

// Initialize Inputs_A2 = 4'b1001;= 0;_A = 0;

#10;

@(posedgeclk);

#2;_A2 = 4'b1001;= 1;

#1;= 0;

#2;_A2 = 4'b0101;= 1;

#1;= 0;

#2;_A2 = 4'b1111;= 1;

#1;= 0;

#2;_A2 = 4'b1110;= 1;

#1;= 0;

#2;_A2 = 4'b1001;= 1;

#1;= 0;

#2;_A2 = 4'b0001;= 1;

#1;= 0;

#2;_A2 = 4'b0000;= 1;

#1;= 0;

#2;_A2 = 4'b1001;= 1;

#1;= 0;

#1;= 0;_A = 0;

#3;= 0;_A = 1;

#1;= 0;_A = 0;

#3;= 0;_A = 1;

#1;= 0;_A = 0;

#3;= 0;_A = 1;

#1;= 0;_A = 0;

#3;= 0;_A = 1;

#1;= 0;_A = 0;

#3;= 0;_A = 1;

#1;= 0;_A = 0;

#3;= 0;_A = 1;

#1;= 0;_A = 0;

#3;= 0;_A = 1;

#1;= 0;_A = 0;

#3;= 0;_A = 1;

#1;= 0;_A = 0;

endmodule

Временная диаграмма

Временная диаграмма, полученная в результате выполнения курсового проекта, приведена на рисунке.

Перейти на страницу: 1 2

Другие материалы

Система передачи информации предприятия Минские тепловые сети
В настоящее время существует множество технологий, с помощью которых возможна организация системы передачи данных. В качестве среды передачи могут использоваться как различные кабельные ...

Разработка зеркальной параболической антенны с рупорным облучателем
Зеркальные параболические антенны широко применяются в радиостанциях различного назначения - радиолокационных, навигационных, радиорелейных и других системах СВЧ диапазона. ...

Разработка принципиальной схемы и конструкции приемного устройства шумоподобных сигналов
Проблема создания широкополосных приемных устройств (ШПУ) с расширенным динамическим диапазоном традиционно является одной из основных задач радиоэлектроники СВЧ. Основной причиной, препятст ...

Копирайт 2018 : www.ordinarytech.ru