这个实验是根据南京大学计算机科学与技术实验教学中心:http://cslab.nju.edu.cn/info.php?id=57上视频介绍做的,因为刚学FPGA,很多都不懂,先在网上找了相关资料来模仿下。希望在模仿中能有更深刻的认识。
lab1: DE2-70实验平台的使用培训视频_3-8decoder_姜孟冯
平台:一块ALTERA的DE2-70板,Quartus II7.2(含Nios II)
芯片:Cyclone II EP2C70F896C6 (FBGA-896-6)
说明:DE2-70的EP2C70F896C6中EP2C:Cyclone II,70:70家族,F:FBGA,896:896 pin,C6:speed grade
步骤:
1、新建工程,名为Q_38_DECODE_TOP
2、在工程里再新建两个.v文件Q_38_DECODE、Q_38_DECODE_TOP,其中后一个为顶层文件。具体如下:
代码一:
2 input [2:0] data_in;
3 output[7:0] data_out;
4 reg [7:0] data_out;
5
6 always@(data_in) begin
7 case(data_in)//
8 3'b000: data_out=8'b0000_0001;
9 3'b001: data_out=8'b0000_0010;
10 3'b010: data_out=8'b0000_0100;
11 3'b011: data_out=8'b0000_1000;
12 3'b100: data_out=8'b0001_0000;
13 3'b101: data_out=8'b0010_0000;
14 3'b110: data_out=8'b0100_0000;
15 3'b111: data_out=8'b1000_0000;
16 endcase
17 end
18 endmodule
代码二:
2 input [2:0] iSW,
3 output[7:0] oLEDG
4 );
5
6 Q_38_DECODE(
7 .data_in(iSW),
8 .data_out(oLEDG)
9 );
10endmodule
这个顶层文件命名可直接跟芯片的引脚名一样,这样可以直接导入引脚或复制,写法用到调用函数。这种方法较常见。
3、引脚锁定-->有两种方法
附件一:DE2_70_pin_assignments.csv的下载网址
https://files.cnblogs.com/zlh840/DE2_70_pin_assignments.rar
方法一:Assignments--> Import Assignments...将上面的附件导入后编译即可(这种方法编译后会出现很多的警告,但不影响结果)
也可编译通过后打Q_38_DECODE.qsf(用写字板或文件打开),将多余的引脚去除即可。要养成这个好习惯。
方法二:打开工程文件目录后找到Q_38_DECODE.qsf并打开,往里面复制引脚匹配信息如下:
set_location_assignment PIN_W25 -to oLEDG[1]
set_location_assignment PIN_W23 -to oLEDG[2]
set_location_assignment PIN_Y27 -to oLEDG[3]
set_location_assignment PIN_Y24 -to oLEDG[4]
set_location_assignment PIN_Y23 -to oLEDG[5]
set_location_assignment PIN_AA27 -to oLEDG[6]
set_location_assignment PIN_AA24 -to oLEDG[7]
set_location_assignment PIN_AA23 -to iSW[0]
set_location_assignment PIN_AB26 -to iSW[1]
set_location_assignment PIN_AB25 -to iSW[2]
4、下载到板上看现象,打开Programmer后设置如下:
Hardware Setup...选择USB-Blaster[USB-0],Mode选择JTAG模式。
板上的开关位于RUN处。现象是开关SW0\SW1\SW2以高低电平设置后相应的LEDG灯会亮。