目录
一、实验目的
二、实验环境
三、实验任务
四、实验原理
五、实验步骤
top.v
mux2_1.v
一、实验目的
1. 掌握数据选择器的工作原理和逻辑功能。
2. 熟悉vivado集成开发环境。
3. 熟悉vivado中进行开发设计的流程。
二、实验环境
1. 装有vivado的计算机。
2. Sword实验系统。
三、实验任务
1. 用VerilogHDL语言设计实现4位二选一数据选择器电路,完成功能仿真。
2. 设计顶层电路,关联外设,在vivado下完成综合等设计步骤,下载至Sword实验系统验证电路功能,熟悉vivado操作流程。
四、实验原理
1. 数据选择器的设计
设计二选一数据选择器,并验证该电路功能。采用三个拨动开关分别作为数据选择器的选择输入和数据输入,输出接到发光二极管上,由发光二极管显示选择器的输入状态。电路连接图如下(具体连接引脚可以自定修改):
2. 为了验证电路功能,需要设计顶层模块,实例化所设计的多路选择器模块。根据sword平台设计,led的驱动需要调用LED_P2S.ngc,这是已经封装好的代码。由于实验台的设计是将驱动led的数据并行转为串行输出,此时还需要在工程中加入时钟clk_div.v。在顶层设计中,将SW与所设计的mux的输入关联,led与所设计的mux的输出关联。完成电路功能验证。在这个过程中,熟悉vivado工具设计流程。
五、实验步骤
1. 参考VIVADO开发设计流程文档,新建工程,设计四位二选一多路选择器模块mux21_4.v(采用实验一的设计)。
2.完成该模块的功能仿真。
3. 参照vivado开发设计流程文档,依次在工程中加入LED_P2S.ngc和LED_P2S_IO.v(用于led显示),clk_div.v(时钟模块),MUX-top.v(顶层模块),依次完成以下步骤:综合、管脚映射、实现、生成bit流文件。
4.参照vivado开发设计流程文档,将设计文件下板,运行,验证电路功能。
Run Synthesis
Run Implementation
Generate Bitstream
这几步,均可在Project Summary查看执行的状态(是否完成)
Open target
Auto Connect
Program device
生成bit流文件
完成下板
根据在TOP中定义的对应的开关,进行验证,观察现象
xc7k160tffg676-1
top.v
`timescale 1ns / 1ps
module TOP(input wire clk_100mhz,
input wire[15:0]SW,
output wire led_clk,
output wire led_clrn,
output wire led_sout,
output wire LED_PEN
);
wire[31:0]Div;
wire[15:0]LED_DATA;
wire CK;
clk_div U8(clk_100mhz,1'b0,SW[2],Div,CK);
LED_P2S #(.DATA_BITS(16),.DATA_COUNT_BITS(4))
PLED (clk_100mhz,
1'b0,
Div[20],
LED_DATA,
led_clk,
led_clrn,
led_sout,
LED_PEN
);
wire [3:0] out;
mux2_1 U1 (SW[3:0],SW[7:4],SW[8],out);
assign LED_DATA = ~{out[0],out[1],out[2],out[3],1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0};
endmodule