最近在研究DE1——soc开发版,通过学习了相关资料,自己先从简单的东西开始,就写了一个简单的流水灯来熟悉开发板,之后会做一些其他相关的东西,先将这些基本的测试记录下来,以备以后使用和相互交流,学习。
以下是相关代码
module my_first_project(
input clk,
input rst_n,
input [1:0] sel,
output reg[9:0] led
);
reg [20:0] cnt;
always@(posedge clk or negedge rst_n)begin
if(!rst_n)
cnt <= 20'h0;
else
cnt <= cnt + 1'b1;
end
assign shift = cnt == 20'h80000;
always@(posedge clk or negedge rst_n)begin
if(!rst_n)
led <= 10'h0;
else
case(sel)
2'b00:begin
led <= 10'h001;
end
2'b01:begin
if(shift)
led <= led << 1'b1;
else
led <= led;
end
2'b10:begin
led <= 10'h100;
end
2'b11:begin
if(shift)
led <= led >> 1'b1;
else
led <= led;
end
endcase
end
endmodule
通过板子上的sw0,sw1,来加载流水灯初始化数据,sw2,为复位信号,低有效。
在用quartusii的流程与基本的quartusii流程一样,一步一步做的。但在最后烧写到板子中时,老是加载数据错误。原因是,其自动检测的时候,选择的那个型号和加载型号不同,当你加载.qpf文件的时候,会出现自己板子的型号,把之前的自检测的那个型号器件删掉,就ok了,尝试了删除soc的器件,就不能加载。必须是你选择你自己的器件型号和soc的器件,才能加载成功,由于实验已做过,未截图,如果需要的话,后续将补上。