Разделы

Листинг модулей на языке 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

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

Разработка системы оказания услуг сотовой связи с целью повышения их качества
В более чем 98% регионов Российской Федерации услуги сотовой связи предоставляют 3 или более оператора. Это говорит о том, что в целом российский рынок сотовой связи находится в стадии з ...

Схема организации связи на базе технологии плотного волнового мультиплексирования (DWDM) для участка Москва–Казань
С момента изобретения телефона в 1875 году, ставшего отправной точкой в развитии телефонной связи, методов и технологий передачи голоса, прошло сто лет прежде чем в 1975 году появился пе ...

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

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