EagleGo板开发日志
基于EagleGo板的图像扫描实验
本实验将使用Vivado2017.04工具,EagleGo开发板和XILINX Platform Cable UBS Model DLC9LP编译器进行烧录 ,最终做成一个自动图像扫描程序。所有代码均用Verilog HDL 语言编写。
我们可以看到文件中ctc8 的模块是空的。
modulectc8(
);
Endmodule
用下面的程序将这个空模块替代掉。
modulectc8( clk, resetn, count
);
inputclk,resetn;outputreg[2:0]count;
always@(posedgeclkornegedgeresetn)begin if(resetn==0)begin
count =0;endelsebegin
if(count==0)
count =7; elsebegin
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 路径中,如图下图。
见下图,点击ProjectSettings,打开ProjectSettings对话框,并转到IP项上。如图下 图。
选择ctc8IP核的位置
现在回到了如图上位置所示的ProjectSettings对话框。点击Apply,然后点击OK。
在随后弹出的对话框中点击OK。此时我们在ProjectManager的Sources中可 以看到刚加进去的ctc8_0,如图下所示。
在sources窗口中双击clock_div,打开该文件。该文件的模块如下:
moduleclock_div(
endmodule
用下面的代码替换它。
moduleclock_div(
);
inputclk;outputclk_sys;
regclk_sys =0;
reg[25:0]div_counter =0;
always@(posedgeclk)beginif(div_counter>=50000000)begi
clk_sys<=~clk_sys;
div_counter<=0;endelsebegin
div_counter<=div_counter +1; end
endmodule
三仿真
在正式综合和下载之前,要先对设计进行仿真,以检查电路设计是否正确。右键点击 Project Manager 下面Sources 中的SimulationSource
双击图上中的高亮部分,打开该文件。可以看到目前的模块定义为:
moduleled_sim
);
Endmodule
用下面的代码替代。
moduleled_sim();
//input
regclock =0; regresetn =0;
//output
wirey0,y1,y2,y3,y4,y5,y6,y7;
//instantiatetheUnitundertestled_lightsuut(
.clock(clock),
.resetn(resetn),
.y0(y0),
.y1(y1),
.y2(y2),
.y3(y3),
.y4(y4),
.y5(y5),
.y6(y6),
.y7(y7)
);
initialbegin
#500resetn =1;
end
always#5clock =~clock;endmodule
得到如图下所示的波形图。
从图上我们可以明显地看到,0.5us后resetn信号无效,计数器和3-8译码器开始工作, 每隔1us,3-8译码器在计数器的推动下,换一个输出,Y7-Y0依次输出,周而复始。
接下来,在ProjectManager中点击RunSynthesis或者工具条上的按钮。综合如果没有问题,会弹出如图下所示的窗口。
ect |
点击OK,对设计进行实现。也可以点击工具条中的 按钮或者在Proj Manager中点击RunImplementation来对设计进行实现。
这样我们就完成了综合与实现。
在ProjectManager中点击Generate Bitstream或者工具条上的按钮。。比特流生成后会出现图下所示的对话框
比特流生成完成
用USB下载线将EagleGo板与PC机的USB相连,选中OpenHardwareManager。点击OK。(在ProjectManager中 点击HardwareManager)。出现图下所示的界面。
所列的正是我们接到PC上的板子的主芯片。点击Next,然后点击Finish。 出现如图下所示界面。