Скачиваний:
2
Добавлен:
27.11.2025
Размер:
262 Кб
Скачать
☆

Использование оператора case

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

•module mpl

•(input[1:0]adr, input c0,c1,c2,c3,

•output line);

•assign line=(adr==2’d0)?c0:1’bx;

•assign line=(adr==2’d1)?c1:1’bx;

•assign line=(adr==2’d2)?c2:1’bx;

•assign line=(adr==2’d3)?c3:1’bx;

•endmodule

Описание мультиплексора через табличную память.

•module mpl

•(input[1:0]adr, input c0,c1,c2,c3,

•output line);

•reg out;

•assign line=out;

•always@*

•begin

case(adr) 2’d0: out<=c0; 2’d1: out<=c1; 2’d2: out<=c2; 2’d3: out<=c3;

………..

Разработка проекта.

•Этап 1. Моделирование. Пакет ModelSim. Программное описание устройства и функциональная симуляция.

•Этап 2. Макетирование. Пакет Quartus 15.

•Формирование загрузочного модуля проекта. Привязка выводов схемы к контактным площадкам. Загрузка модуля проекта в кристалл.

Функциональная симуляция.

• Схема для формирования файла testbench

Тестовый файл мультиплексора для коммутации 7-разрядных входов.

•`timescale 1ns/100ps

•module mpl_tb;

•reg [6:0]c70t,c71t,c72t,c73t; reg [1:0]adrt;

wire [6:0] line7t;

mpl m1(.c70(c70t),.c71(c71t),.c72(c72t),.c73(c73t),.adr(adrt),.line7(line7t)); always

begin

c70t=$unsigned($random)%127; c70t=7’h35; c71t=$unsigned($random)%127; c71t=7’h7A; c72t=$unsigned($random)%127; c72t=7’hC4; c73t=$unsigned($random)%127; c73t=7’h1D; #800;

end

initial begin adrt=0; #200;

adrt=adrt+1;

#200;

adrt=adrt+1;

200;

adrt=adrt+1;

#200; $stop; end

endmodule

Соседние файлы в папке Лекции. Неелова