查看: 1725|回复: 0

​【MAXII_EPM240T100_CPLD】系列实验 实验一 点亮LED-循环点亮8个LED

[复制链接]
  • TA的每日心情
    开心
    2019-11-19 11:07
  • 签到天数: 226 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2017-2-16 08:48:32 | 显示全部楼层 |阅读模式
    分享到:
    【MAXII_EPM240T100_CPLD】系列实验 实验一 点亮LED-循环点亮8个LED MAXII EPM240T100
    首次实验,稍微严谨一点,各个步骤都写下来,并附图或照片。
    0. 打开qst软件,见下图。

    1. Create a New Opject/路径/名称/选择器件/选择仿真器和编程语言/empty/empty。见图片111~图片116。

    Create a New Opject

    路径和项目名称,记住项目名称

    选择器件

    选择仿真器和编程语言

    创建项目一览表

    生成的首个项目
    2. file/New file/名称/输入Code/完成后/Save As.../Compille Design/Ok——No Error,Can be Warring
    点击菜单/文件/新建,将下边的代码敲进去!
    首先照抄——改了一点,将原来的4只LED改成8只LED循环:注意model 后边的名字必须与项目名一致,否则过不去!!!
    //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。

    创建文件的类型

    书写代码

    编译通过。注意编译时有时会出现警告,比如上述就产生2~5个警告。只要没有错,左边的Task编译就会一路绿色的勾!
    3. Assignments/绑定Pins/完成后关闭此窗口即可。见图131~图133。绑定芯片的管脚对应到程序中的输出和输入。

    单击菜单上的管脚绑定

    单击界面上的Location下边的空表,在下拉列表中选择需要的管脚PIN_x,一定要正确,与实际管脚一一对应。

    绑定完成后的界面,完成后关闭即可。
    4. Assignments/TimeQuest Timing Analyzer Wizard。对这种LED显示,很慢,时钟需求检测分析就免了。
    5. 再编译一次/Compile Design/Ok——No Error,Can be Warring
    完成以上3,4后,再次双击Task下的Compile Design,要求同上,不能错,可以有警告。
    6. 单击左窗口Tasks/双击最下边的Program Device,见图16。

    双击图中红色圈起来的文字
    7. Hardware Setup/选择USB-Blaster。如果USB Blaster没有正确安装,必须将驱动安装好了,否则过不去。图171~图173。

    选择下载器

    本例选择USB Blaster

    下载过程拍照

    下载完成
    8. Add File/找到Output File中的.pof文档/Open。图174。
    9. 勾选Program/Configure下的所有/可勾选Verify下的。图175。
    完成后直接看结果。见图18,动图19。

    静止照片

    录下的动话=画,剪辑的动图。
    程序比较笨,但实现了此块自己DIY的CPLD开发板的首秀。结果见照片11。希望改成一个触发定时器来显示的。因为本开发板的资料全无,需要将板载资料一一试出来,所以下一步的实验是测试8只LED8段码管的连接方式。
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-19 18:40 , Processed in 0.123550 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.