原创
终于在FPGA开发板上跑通了第一个样例----流水灯 (原创)
昨天拿到的开发板,配置为: XC3S400 + XCF02S + CY68013A,就是传说的那个USB+FPGA的核心板,底板没找到(都是问一个朋友借的,买的话太贵了), 上面有一排LED灯,就先来跑跑流水灯吧,
verilog 源码如下:
module LedWater(clk, rst, dataout);
input clk;
input rst;
output [7:0] dataout;
reg [7:0] dataout;
reg [22:0] cnt;
always@(posedge clk or negedge rst)
begin
if(!rst) begin
cnt<=0;
dataout<=8'b1110_0111;//0->Led on, 1->Led off
end
else begin
cnt<=cnt+1;
if(cnt==23'h7fffff) begin
dataout[2:0]<=dataout[3:1];
dataout[3]<=dataout[0];
dataout[6:4]<=dataout[7:5];
dataout[7]<=dataout[4];
end
end
end
endmodule
PIN脚下配置的约束文件如下:
#PACE: Start of PACE I/O Pin Assignments
NET "clk" LOC = "P80" | IOSTANDARD = LVCMOS33 | IOBDELAY = NONE ;
NET "dataout[0]" LOC = "P15" | IOSTANDARD = LVCMOS33 | SLEW = SLOW ;
NET "dataout[1]" LOC = "P16" | IOSTANDARD = LVCMOS33 | SLEW = SLOW ;
NET "dataout[2]" LOC = "P18" | IOSTANDARD = LVCMOS33 | SLEW = SLOW ;
NET "dataout[3]" LOC = "P19" | IOSTANDARD = LVCMOS33 | SLEW = SLOW ;
NET "dataout[4]" LOC = "P20" | IOSTANDARD = LVCMOS33 | SLEW = SLOW ;
NET "dataout[5]" LOC = "P21" | IOSTANDARD = LVCMOS33 | SLEW = SLOW ;
NET "dataout[6]" LOC = "P22" | IOSTANDARD = LVCMOS33 | SLEW = SLOW ;
NET "dataout[7]" LOC = "P24" | IOSTANDARD = LVCMOS33 | SLEW = SLOW ;
NET "rst" LOC = "P161" | IOSTANDARD = LVCMOS33 | IOBDELAY = NONE ;
有了这两个文件,就可以直接生成bit文件了,
再用bit文件通过iMPACT来生成MCS文件,最后把MCS文件下载到xcf02s即可,
// 最后这两步说起来很简单,实际却花了不少时间,(没人在旁边指导啊,全是一个在那查资料,摸索,所以当那几个小灯在那闪啊闪的时候,可兴奋了。(各位高手不要笑噢,咱也是新手嘛,你说这时能不激动吗?)
由bit --> MCS文件的过程是:
打开iMPACT.exe,然后File/New, Create a New Project -> OK,
然后在弹出的界面上选择Prepare a PROM file -> next,就采用默认值,但把生成的文件名和路径填好,否则待会不知道生成到哪去了,嘻嘻,
下一个界面就是设置你所采用的配置IC,以便生成对应大小的文件,
我的这里就选xcf02s,-> Add ->next ->finish.
然后就根据提示选择要下载的bit文件,最后点operation/generate file...,就可以得到我们想要的MCS文件了。
关闭
站长推荐
/2
用户203017 2009-7-7 00:53
walnutcy_696810119 2008-8-2 00:48
ilove314_323192455 2008-8-2 00:01