EagleGo板开发日志
基于EagleGo板的图像扫描实验
本实验将使用Vivado 2017.04工具,EagleGo开发板和XILINX Platform Cable UBS Model DLC9LP编译器进行烧录 ,最终做成一个自动图像扫描程序。所有代码均用Verilog HDL 语言编写。
我们可以看到文件中ctc8 的模块是空的。
module ctc8(
);
Endmodule
用下面的程序将这个空模块替代掉。
module ctc8( clk, resetn, count
);
input clk,resetn; output reg[2:0] count;
always @(posedge clk or negedge resetn) begin if(resetn == 0) begin
count = 0; end else begin
if(count == 0)
count = 7; else begin
count = count - 1;
end
end
end
endmodule
这段程序重复执行,首先描述了一个 8 进制计数器,每次时钟上升沿到来,计数器减 1,减到0 后重新开始计数。
我们可以看到 IP 生成到一个成为 xilinx.com_user_ctc8_1.0.zip 文件 中,路径是D:/Xilinx/VivadoProject/ctc8/ctc8.srcs/sources_1/new。 点击Package IP。这样,ctc8 的IP 核就生成了。
到 D://Xilinx/VivadoProject/ctc8/ctc8.srcs/sources_1/new 路径下将
xilinx.com_user_ctc8_1.0.zip 文件拷贝到下面的路径中。
D:\MIPSfpga_Fundamentals\Xilinx\VivadoProject\led_lights。 然后将其解压到xilinx.com_user_ctc8_1.0 路径中,如图 下图。
见下图,点击 Project Settings,打开Project Settings 对话框,并转到IP 项上。如图下 图。
选择ctc8 IP 核的位置
现在回到了如图上位置所示的Project Settings 对话框。点击 Apply,然后点击 OK。
在随后弹出的对话框中点击OK。此时我们在Project Manager 的Sources 中可 以看到刚加进去的ctc8_0,如图下所示。
在sources 窗口中双击clock_div,打开该文件。该文件的模块如下:
module clock_div(
endmodule
用下面的代码替换它。
module clock_div(
);
input clk; output clk_sys;
reg clk_sys = 0;
reg [25:0] div_counter = 0;
always @(posedge clk) begin if(div_counter>=50000000) begi
clk_sys<=~clk_sys;
div_counter<=0; end else begin
div_counter <= div_counter + 1; end
endmodule
三 仿真
在正式综合和下载之前,要先对设计进行仿真,以检查电路设计是否正确。右键点击 Project Manager 下面Sources 中的Simulation Source
双击图上中的高亮部分,打开该文件。可以看到目前的模块定义为:
module led_sim
);
Endmodule
用下面的代码替代。
module led_sim( );
//input
reg clock = 0; reg resetn = 0;
//output
wire y0,y1,y2,y3,y4,y5,y6,y7;
//instantiate the Unit under test led_lights uut(
.clock(clock),
.resetn(resetn),
.y0(y0),
.y1(y1),
.y2(y2),
.y3(y3),
.y4(y4),
.y5(y5),
.y6(y6),
.y7(y7)
);
initial begin
#500 resetn = 1;
end
always #5 clock = ~clock; endmodule
得到如图下所示的波形图。
从图上我们可以明显地看到,0.5us 后 resetn 信号无效,计数器和 3-8 译码器开始工作, 每隔 1us,3-8 译码器在计数器的推动下,换一个输出,Y7-Y0 依次输出,周而复始。
接下来,在 Project Manager 中点击 Run Synthesis 或者工具条上的 按钮。综合如果 没有问题,会弹出如图下所示的窗口。
ect |
点击 OK,对设计进行实现。也可以点击工具条中的 按钮或者在Proj Manager 中 点击Run Implementation 来对设计进行实现。
这样我们就完成了综合与实现。
在 Project Manager 中点击 Generate Bitstream 或者工具条上的 按钮。。比特流生成后 会出现图下所示的对话框
比特流生成完成
用 USB 下载线将 EagleGo 板与 PC 机的 USB 相连,选中 Open Hardware Manager。点击 OK。(在 Project Manager 中 点击 Hardware Manager)。出现图下所示的界面。
所列的正是我们接到PC 上的板子的主芯片。点击 Next,然后点击Finish。 出现如图下所示界面。