集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
楼主: lcytms

跟李凡老师学FPGA之D02:EDA建模、HDL描述语言(20160424课堂笔记)

[复制链接]
 楼主| lcytms 发表于 2017-1-17 22:48:27 | 显示全部楼层
1434
        因为共阳电路的公共开关是打开着的,它没有费电。
        只有它是亮着的。它亮着,就显示它的七段码。
        地址为0,送D0的七段码。地址为1,送D1的七段码。
        地址为5,送D5的七段码。
        这样的话呢,我们的地址只需要做一件事,就是定期地切换即可。
        切换的速度是多少呢?
        是不是我们50MHz可以直接带得动呢?
        由于共阳电路的公共电路的切换开关它是受时间限制的,那个开关带功率的,所以说那个开关的速度并不是特别高。
        我们现在的开发板上多少合适呢?
        10k周,100us的周期,它带得动。
        所以说,我们只需要做一个10k周的时钟,这个FPGA上用10k周的时钟来驱动,驱动这个地址的一个计数器。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-1-17 22:51:31 | 显示全部楼层
1435
        这个计数器就是从0数到5以后清零,接着数,012345,012345,周而复始,永远是这样的,012345,012345。
        实际上这个计数器是一个模6的计数器,012345,它永远是模6的。
        这个呢,就是第一个模块。
        称之为counter的这个模块。
        我们现在这个里面已经改变了,不用这个counter了。
        只需要发送地址,它就是从0数到5,这样呢,这个单元我们应该会。
        就是你写一个计数器,从0写到5,到了5以后,接着清零,这个我们应该会。
        模6的一个计数器。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-1-17 22:55:12 | 显示全部楼层
1436
        接着,另外一个单元,因为每一个8字一共可以显示24个bit的二进制。
        所以说,我们如果写成LED的一个Driver,这个Driver它可以把任何逻辑的二进制和十六进制显示出来。
        显示总共多少位呢?
        6个8字嘛,1个8字是4位,总共是四六二十四。
        1个8字是显示4个bit,6盏灯,四六二十四。
        这样的话呢,总共能显示23:0的一个二进制或者16进制的信号。
        那么这个时候,我们就需要另外一个部件,就是mux这个部件。
        mux这个部件,很简单。
        地址为谁,选谁。
        地址是0,是十万位,你就把23/22/21/20这4根线送出来。
1437
        地址为1,然后把19/18/17/16送出来。
        依次选4根。依次选4根。总共有6嘛,四六二十四。
        每一个地址选4根线。这就是mux的功能。
        注意,它是一个组合逻辑。
        它是一个电平敏感的多路器。
        这个多路器会不会写?
        我们会写,是不是?
        我们讨论了这么多。
        最后,就是一个SEG的driver,实际上就是一个encoder,一个编码器。
        这个编码器是起什么作用呢?
        它是把4个bit的二进制或者16进制转成七段码,转成那个8字应该显示的字样,这个我们不需要同学去考虑了。
        我直接发一个头文件给你,你只需要写一个case语句,用行为。
        什么样的输入的数据,我要找到我们对应的ppt,就是跟这个开发板对应的,因为这个ppt是不对的。
        这个是早期的ppt。看看能不能找得到。
        找到我们做起来就方便一点。
        没有找到。
        我来修改一下。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-1-17 23:00:01 | 显示全部楼层
1438
        什么样的data,data是4个bit的,是从24根线上挑出来的。
        它为什么样的值,我们就显示什么样的值。
        它为数值的0,我们就显示七段码的0。
        它为数值的1,我们就显示七段码的1。
        你用case语句写,不难。
        关键是七段码是什么样子的。
        0应该是那个字段写成?
        1应该是那个字段写成?
        你不必想它,不必动脑筋。
        我们有一个头文件发给你。
        你只要引用头文件,只要在seg上面写个driver。
        case的data是0,显示七段码的0。
        case的data是1,显示七段码的1。
        等等。
        一直到15。
        然后呢,我们实现这个的过程中,我们仍然是自上而下的,并且建议用攀岩法,并且要做验证。
        如果说逐级验证时间不够,我们就直接做顶层的验证。
        顶层验证的时候,我会给同学说一下,尽可能地我们要做一个monitor。
        因为这个时候显示的时候呢,我们在这验证的过程中,verification,仿真的时候,我们要看七段码,就是seg_n嘛。
        我们是很难分辨它显示什么值的嘛。
        看不到嘛,对不对?
1439
        边上一圈亮,abcde,究竟显示的是一个什么数字呢?
        要猜老半天,还要估计一下,要算一下。
        所以说我们在这写一个monitor,显示一个监视器。
        监视器怎么写呢?
        在testbench里面用一段行为写,也用case语句写。
        Case(seg_n)是什么,那段ASCII就是什么。
        写的时候呢,我会和同学说一下,或者说,我会请一个同学,帮助一个同学来做的时候呢,我会把它广播出来。
        就是这段monitor怎么写,我会把它广播出来。
        其它的问题,我相信我都已经交代了。
1440
        这节课稍微长了10分钟,休息一下。
        还是休息10分钟。
        之后我们就可以开始做练习,我把ppt发给大家。
        至于下板的操作,我会跟办公室联系。
休息
练习

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-1-17 23:02:32 | 显示全部楼层
1554
        辅导练习。
        新建文件夹LED_Driver。
        打开新工程向导。
1555
        新建LED_Driver.v文件。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-1-17 23:16:45 | 显示全部楼层
本帖最后由 lcytms 于 2017-1-17 23:18 编辑

1556
        新建led_counter.v文件。
1557
        Ctrl+S、Ctrl+K。检查程序。
练习

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-1-17 23:19:06 | 显示全部楼层
1620
        编写led_counter.v代码。Ctrl+S、Ctrl+K。检查程序。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-1-17 23:20:18 | 显示全部楼层
1621
        编写led_mux.v代码。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-1-17 23:23:15 | 显示全部楼层
1622
        编写led_mux.v代码。
1623
        编写led_mux.v代码。
1624
        编写led_mux.v代码。
1625
        编写led_mux.v代码。
1626
        编写led_mux.v代码。
        Ctrl+S、Ctrl+K。
        检查程序。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-1-17 23:25:11 | 显示全部楼层
1627
        编写led_encoder.v代码。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-2-22 02:26 , Processed in 0.066095 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表