> 文章列表 > 中科亿海微FPGA应用(一、点灯)

中科亿海微FPGA应用(一、点灯)

中科亿海微FPGA应用(一、点灯)

1.软件:

https://download.csdn.net/download/weixin_41784968/87564071

需要申请license才能使用:软件试用申请_软件试用申请_中科亿海微电子科技(苏州)有限公司

2.开发板:

 芯片EQ6HL45,42.5k LUT。

3.官方例程:

中科亿海微EQ6HL45例程-OS文档类资源-CSDN文库

4.上电,联机。注意板子需要单独用5V电源供电,下载器是不提供电源的。

5.运行eLinx,打开flow_led工程,如图:

 6.按以下示意生成Bitstream文件

 7.点击“Open Target”,进入“Programmer”界面,点击“Auto Detect”探测到EQ6HL45,如下:

 8.点击“Add File”,在工程所在的目录下\\flow_led.runs\\imple_1目录下找到flow_led.jpsk文件,点击“Start”下载到开发板,实现跑马灯效果。

 9.官方提供的跑马灯是亮3个灯,不亮的灯移动,因此效果不太明显,点开源程序,将led<=4'b0001修改为led<=4'b0111,保存(务必要做),重新生成Bitstream文件,重新下载。

11.进一步,改为可控双向跑马灯,代码如下:

module flow_led(input               sys_clk  ,  //系统时钟input               sys_rst_n,  //系统复位,低电平有效input               k,  //移位方向控制	 output  reg  [3:0]  led         //4个LED灯);//reg define
reg [23:0] counter;//*****************************************************
//**                    main code
//***************************************************** //计数器对系统时钟计数,计时0.2秒
always @(posedge sys_clk or negedge sys_rst_n) beginif (!sys_rst_n)counter <= 24'd0;else if (counter < 24'd1000_0000)counter <= counter + 1'b1;elsecounter <= 24'd0;
end//通过移位寄存器控制IO口的高低电平,从而改变LED的显示状态
always @(posedge sys_clk or negedge sys_rst_n) beginif (!sys_rst_n)led <= 4'b0111;else if(counter == 24'd1000_0000) led[3:0]<= (k==1)?{led[2:0],led[3]}:{led[0],led[3:1]};elseled <= led;
endendmodule 

 即增加了一个输入端k,利用三目运算符给led[3:0]赋了两个值。I/O Planning修改引脚,k设为F2:

 下载测试,不按KEY2时跑马灯自左往右,按下KEY2自右往左。

12.选择Flash模式,再次“Auto Detect”,点击“Start”,经过漫长时间(2-3分钟),程序下载成功,重新上电,Flash模式成功,即掉电后程序不丢失(JTAG模式掉电后程序丢失)。