首次实验,稍微严谨一点,各个步骤都写下来,并附图或照片。
0. 打开qst软件
1. Create a New Opject/路径/名称/empty/empty。见图片111~图片116。
打开软件
向项目向导
项目文件夹和文件名
选择芯片型号
仿真器
选择好后的报告
打开的软件
2. file/New file/名称/输入Code/完成后/Save As.../Compille Design/Ok——No Error,Can be Warring
首先照抄——改了一点,将原来的4只LED改成8只LED循环:
//Test LEDs
module ledTest(
clk, //开发板上输入时钟: 50Mhz
rst_n, //开发板上输入复位按键
led //输出 LED 灯,用于控制开发板上8个 LED(LED0~LED7)
);
input clk;
input rst_n;
output [7:0] led;//8'
//寄存器定义
reg [31:0] timer;
reg [7:0] led;//8'
always @(posedge clk or negedge rst_n)//检测时钟的上升沿和复位的下降沿
begin
if (~rst_n)//复位信号低有效
timer <= 0;//计数器清零
else if (timer == 32'd39_999_999) //开发板使用的晶振为 50MHz,0.25秒计数(39_999_999)
timer <= 0;//计数器计到 4 秒,计数器清零
else
timer <= timer + 1'b1;//计数器加 1
end
always @(posedge clk or negedge rst_n) //检测时钟的上升沿和复位的下降沿
begin
if (~rst_n) //复位信号低有效
led <= 8'b11111111; //LED 灯输出全为低,8个 LED 灯灭
else if (timer == 32'd4_999_999)//计数器计到.1秒,
led <= 8'b11111110; //LED1 点亮
else if (timer == 32'd9_999_999)//计数器计到.2秒,
led <= 8'b11111101; //LED2 点亮
else if (timer == 32'd14_999_999)//计数器计到.3秒,
led <= 8'b11111011; //LED3 点亮
else if (timer == 32'd19_999_999)//计数器计到.4秒,
led <= 8'b11110111; //LED4 点亮
else if (timer == 32'd24_999_999)//计数器计到.5秒,
led <= 8'b11101111; //LED5 点亮
else if (timer == 32'd29_999_999)//计数器计到.6秒,
led <= 8'b11011111; //LED6 点亮
else if (timer == 32'd34_999_999)//计数器计到.7秒,
led <= 8'b10111111; //LED7 点亮
else if (timer == 32'd39_999_999)//计数器计到.8秒,
led <= 8'b01111111; //LED8 点亮
end
endmodule
见图121~图123。
保存为ledTest
编译
编译程序代码
3. Assignments/绑定Pins/完成后关闭此窗口即可。见图131~图133。
点击绑定管脚
绑定管脚
管脚绑定
4. Assignments/TimeQuest Timing Analyzer Wizard。对这种LED显示,很慢,时钟需求检测分析就免了。5. 再编译一次/Compile Design/Ok——No Error,Can be Warring
6. 单击坐窗口Task/双击最下边的Program Device,见图16
准备下载程序
7. Hardware Setup/选择USB-Blaster。如果USB Blaster没有正确安装,必须将驱动安装好了,否则过不去。图171~图173。
点击选下载工具
下载工具
下载的文档
8. Add File/找到Output File中的.pof文档/Open。图174。
下载勾选
9. 勾选Program/Configure下的所有/可勾选Verify下的。图175。
下载过程
过程10:Start/Prpgress完成后直接看结果。见图18,动图19。
LED轮亮
LED流水动画
程序比较笨,但实现了此块自己DIY的CPLD开发板的首秀。希望改成一个触发定时器来显示的。因为本开发板的资料全无,需要将板载资料一一试出来,所以下一步的实验是测试8只LED8段码管的连接方式。