lcytms 发表于 2017-3-12 23:37:54

1014
        全编译通过了。
        直接编程,直接start。
        现在看见什么?
        是0。
        现在我们知道了,seg有不同的编码值,段编码是在seg上加载。
        然后sel呢,这是地址。
        当为0的时候,是十万位被点亮,选中5到时候是个位被点亮。
        我们led的driver就是这样,就是每一拍一盏灯被点亮,点亮这盏灯的时候把它的七段码送上去,就是这样。
1015
        那么一盏灯被点亮的周期是多少呢?
        10k周,100us。
        100us,人的眼睛有视觉暂留,看起来是所有的灯都被点亮。
        实际上是一盏灯一盏灯被点亮。
        下面呢,我们就来试一下这个过程。
        我们先把分频器拿过来,把写好的分频器的代码放在工程文件夹的根目录下面。

lcytms 发表于 2017-3-12 23:38:59

1016
        这个文件是一个状态机的文件,回头我们来介绍,但是今天不着急,今天我们把基础打扎实,解决我们同学的疑惑。
        回到Quartus,将该文件添加到工程中。

lcytms 发表于 2017-3-12 23:40:42

本帖最后由 lcytms 于 2017-3-12 23:42 编辑

1017
        我用分频器来点一盏LED的灯,用分频器让它闪起来。
        50MHz我们看不到,太快了,看不到。
        我们把它做成10Hz。
1018
        我首先把分频器创建为符号,选择yes。创建成功选OK。
        在桌面双击,在工程下选中frequency_divider_mealy_fsm1s,点OK。
   

lcytms 发表于 2017-3-12 23:43:00

1019
        放在合适的位置。
        这个分频器呢,就是已经定制的一个IP了。
        HW是高电平的宽度,LW是低电平的宽度。
        它可以指定高电平多少拍,低电平多少拍。

lcytms 发表于 2017-3-12 23:45:05

1020
        计算输出频率。
1021
        输出10Hz时钟信号的情况计算如下。

lcytms 发表于 2017-3-12 23:46:09

1022
        修改HW、LW参数为2500000。

lcytms 发表于 2017-3-12 23:47:56

1023
        修改bdf文件。
        修改LED为LED。
        修改key为key,做复位。
        分别接在分频器的对应信号上。
        生成引脚。

lcytms 发表于 2017-3-12 23:50:21

1024
        观察开发板资源名为clk。
        修改资源名为clk。
        再做全编译。
        检查一下分配出来的管脚。
        所有的管脚都已经分配了。
   

lcytms 发表于 2017-3-12 23:52:01

1025
        然后呢我们就准备下板。
        在编程器里点start。
        我们把它的速度再放慢一点。
        10Hz还是有点快。
1026
        分频器的复位应该是负逻辑,这地方加个!符号,修改一下。
        要不然它一直在复位。
        然后再一次全编译。

lcytms 发表于 2017-3-26 22:56:26

1027       
        全编译通过了以后,直接编程。
        现在闪了,是不是?
        所以说有时候是失之毫厘谬以千里。
        这是用10Hz,现在我们把它改成10k周。
        把参数改成2500。
        有兴趣可以逐个试,一个数量级一个数量级地试一下。
          
页: 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14
查看完整版本: 跟李凡老师学FPGA之D03:使用tcl脚本(数码管)、二进制转BCD(20160425课堂笔记)