一个礼拜过去了,在实验室也用了几次FPGA
还算小有成果
总结如下:
1安装ISE
1.1 上网申请了序列号
1.2 安装
1.3 按照以前暑假小学期的时候得书,开始学着做实验
1.4 安装ModelSim XE
1.5 上网申请XE Starter的序列号,没给我,比较郁闷
2开发板的使用
2.1 按照Quick Start所说的一步一步做,做了一个Counter
2.2 使用USB-JTAG将程序下载到片上RAM,成功运行
2.3 使用USB-JTAG将程序下载下载到PROM(xcf04s),成功运行
3编写VGA程序
写了一个比较简单的VGA程序,让显示器显示彩条^^
4给ModelSim SE编译了Xilinx的库(其实也就用了一条命令)
5给blog进行装饰
5.1 初步装饰(日历、联系方式、播放器)
5.2 给播放器添加了playlist(写code写了我一天-_-bb)
/*********************************** VGA源代码 *****************************/
`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 20:06:46 02/07/2007
// Design Name:
// Module Name: clear
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//
module clear(clk, c, l, hs, vs);
input clk;
output [9:0] c;
output [8:0] l;
output hs;
output vs;
reg [9:0] c;
reg [8:0] l;
reg hs;
reg vs;
clkd2 u1 (clk,fclk);
always @ (posedge fclk)
begin
if (c == 599)
c = 0;
else
c = c + 1;
end
always @ (posedge c[9])
if (l == 499)
l = 0;
else
l = l + 1;
always @ (c or l)
begin
if (c>583 && c<600)
hs = 0;
else
hs = 1;
if (l>444 && l<450)
vs = 0;
else
vs = 1;
end
endmodule
module clkd2(clk_in, clk_out);
input clk_in;
output clk_out;
reg clk_out;
always @ (posedge clk_in)
clk_out = ~clk_out;
endmodule
`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 20:24:28 02/07/2007
// Design Name:
// Module Name: display
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//
module display(GRBP, hs, vs, R, G, B);
input [3:1] GRBP;
input hs;
input vs;
output R;
output G;
output B;
assign R = GRBP[2] & hs & vs;
assign G = GRBP[3] & hs & vs;
assign B = GRBP[1] & hs & vs;
endmodule
`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 20:30:32 02/07/2007
// Design Name:
// Module Name: color
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//
//module color(c, l, GRBX, GRBXA, GRBXB, GRBY, GRBYA);
module color(c, l, GRB);
input [9:0] c;
input [8:0] l;
output [3:1] GRB;
reg [3:1] GRB;
always @ (c)
begin
if (c<127)
GRB = 3'b000;
else if(c<189)
GRB = 3'b111;
else if(c<252)
GRB = 3'b110;
else if(c<314)
GRB = 3'b101;
else if(c<376)
GRB = 3'b100;
else if(c<439)
GRB = 3'b011;
else if(c<502)
GRB = 3'b010;
else if(c<564)
GRB = 3'b001;
else if(c<600)
GRB = 3'b000;
else
GRB = 3'b000;
end
endmodule
`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 21:01:53 02/07/2007
// Design Name:
// Module Name: vga
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//
module vga(clk, R, G, B, hs, vs);
input clk;
output R;
output G;
output B;
output hs;
output vs;
wire [9:0] cc;
wire [8:0] ll;
wire [3:1] RGB;
//clear(clk, c, l, hs, vs);
clear u1(clk,cc,ll,hs,vs);
//color(c, l, GRB);
color u2(cc,ll,GRB);
//display(GRBP, hs, vs, R, G, B);
display u3(GRB,hs,vs,R,G,B);
endmodule