Nexys3学习手记5:流水灯在线运行
时间:02-11
来源:网络整理
点击:
此时需要编写一段流水灯测试代码,如下所示:module test1led( clk,rst_n, led ); input clk; //100MHzinput rst_n; //低电平复位信号 output[7:0] led; //分频信号,连接到蜂鸣器 //---------------------------------------------------reg[2:0] cnt; //分频计数器 always @ (posedge clk or negedge rst_n)//异步复位 if(!rst_n) cnt <= 23'd0; else cnt <= cnt+1'b1; //寄存器cnt循环计数 //----------------------------------------------------reg[7:0] ledr; //LED流水灯 always @ (posedge clk or negedge rst_n) if(!rst_n) ledr <= 8'd1; else if(cnt == 23'h7fffff) ledr <= {ledr[6:0],ledr[7]};//大约每80ms让led左移一次 assign led = ledr; endmodule 接下来需要对管脚进行分配,如图10所示,Hierarchy中需要先选中顶层代码文件testled.v,然后双击Processes下的User ConstraintsàI/O Pin Planning(PlanAhead) – Post-synthesis(或者I/O Pin Planning(PlanAhead) – Pre-synthesis,两者的区别在于在分配管脚时是否synthesis了,一般是无关紧要的)。
图10 PlanAhead启动
Xilinx的工具做得真是独具匠心啊,打开PlanAhead后的欢迎界面不得不让我们发出"设计文档无处不在"的感慨。如果想深入了解PlanAhead工具,不妨好好拜读下这里罗列的PlanAhead User Guide。
图11 PlanAhead的欢迎界面
如图12所示,参照原理图NEXYS3_sch.pdf,在PlanAhead的I/O Ports中对该实例的管脚进行分配。其中rst_n使用了拨码开关SW1,板级验证的时候注意将SW1朝板子内侧拨动即处于正常运行状态。分配完成后保存设置即可退出PlanAhead。
图12 管脚分配
回到ISE中,双击图10的Processes下Generate Programming File进行编译生成.bit下载文件。然后使用上节提到的Adept工具,在Config功能项中加载并烧录工程文件夹下生成的test1led.bit文件。接着,我们就可以看到在线烧录到FPGA器件中的代码运行起来了,SW1拨码开关处于内侧时,8个流水灯跑的很欢。转载自:特权同学的博客- Nexys3学习手记3:硬件外设走马观花(02-11)
- Nexys3学习手记7:MicroBlaze小试牛刀(02-11)
- Nexys3学习手记6:ClockingWizard探秘(02-11)
- Nexys3学习手记8:FT232之高速UART(02-11)
- Nexys3学习手记2:建立自己的开发环境(02-11)
- Xilinx Kintex UltraScale 一半尺寸的 PCI Express 平台 (HTG-K816)(06-15)