这个实验是根据南京大学计算机科学与技术实验教学中心: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 );
10 endmodule
这个顶层文件命名可直接跟芯片的引脚名一样,这样可以直接导入引脚或复制,写法用到调用函数。这种方法较常见。
3、引脚锁定-->有两种方法
附件一:DE2_70_pin_assignments.csv的下载网址
http://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灯会亮。