集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
楼主: lcytms

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

[复制链接]
 楼主| lcytms 发表于 2017-1-17 22:21:14 | 显示全部楼层
1424
        现在是上升沿,改成跟刚才一样的下降沿,只需要把pos改成neg即可。
        好,这个呢,就是今天课程的内容。
        等会我会把我做的代码以及课件都发给大家。
        现在我说一下,我们今天下午做什么。
        今天下午呢,我们就用数据流、行为、结构化,我们写一个七段数码管的驱动。
        我来说一下,我们下午,需要用到开发板,稍后发下来。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2017-1-17 22:29:48 | 显示全部楼层
1425
        下午呢,我们就做这个七段数码管的驱动。
        七段数码管呢,嵌入式、单片机、ARM,我们都会用到它的驱动。
        现在呢,我们用逻辑来写,用电路建模。
        我们先来说一下这个七段数码管,嵌入式有些同学做过的,了解它的结构,可能也有同学完全没有做过,我先来说一下它的电路构成。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2017-1-17 22:31:11 | 显示全部楼层
1426
        就像我们现在看到的这个数码管。
        每个数码管有一个8字,8字下面还有小数点。
        在每一个白色的字的后面,有一个灯,或者说一个发光二极管,当发光二极管亮的时候,对应这个段位它是亮的。
        如果我们要显示0,这边亮。显示1。显示3。
        所以说不同的段位亮起来,它就显示不同的字样。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2017-1-17 22:32:44 | 显示全部楼层
1427
        那么这种段位显示字,可以显示多少呢?
        这个8字可以显示从0到F。这是4个bit的,0000到1111,它都能显示,虽然有些字段看起来怪怪的。
        比如说,4少一截,b是个小写,A是这样的,有些奇怪,但总归还是能够看清。
        十六进制,一个8字可以显示4位的二进制,从0000到1111。
        那么它的这种编码的方式是这样的,段位这是a、b、c、d、e、f,中间这个是g,小数点是p。
        然后呢有八个二极管,每个下面都有一个,实际上呢段位是有7个,加上小数点是8位。
        通常我们说称之为七段码,seven segment display,就是这样一个结构。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2017-1-17 22:34:35 | 显示全部楼层
本帖最后由 lcytms 于 2017-1-17 22:37 编辑

1428
        所以说,用到的发光二极管也有8位,加上小数点。
        加上小数点以后的8位线呢,分别是a、b,然后呢一直到p。
        这个发光二极管的构成很有意思。
        我们要让发光二极管亮起来,有两种方法。
        一种方法,我们把它的阳极接在一起,称之为共阳。
        我们的共阳电路的这一端,接一个开关管,开关管的上游接Vcc,馈电。
        然后通过必要的串联限流电阻引入了FPGA的驱动端,我们控制的驱动端。
  

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2017-1-17 22:39:37 | 显示全部楼层
1429
        如果是一个共阳电路的话,我们驱动它,从a线到p线,这个时候呢,我们的编码,在开发板上的编码,我们称之为SEG线。
        Segment。
        SEG的a是最低位,小数点是最高位,seg[7]。
        总共8根线, 所以说seg这是7:0的一根线。
        是这样驱动的,而且是负逻辑。
        对,共阳电路是负逻辑。
        共阴电路正好是正逻辑。
        共阴电路反过来,是在这边驱动的。
        共阳电路是它的阴极驱动的。
        阴极驱动当然是低电平它才亮的。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2017-1-17 22:41:16 | 显示全部楼层
1430
        我们用的开发板上就是共阳电路。
        但是下午呢,我们给大家的头文件,是个共阴电路的头文件。
        我们的开发板上总共有6盏灯,6个8字。
        D0,D1,D5。
        D0这盏灯,是最高位,个十百千万,十万位的,D5是各位的。
        如果每一个8字,我们都把它的控制逻辑接出来,每一个8字都有seg信号8位的线接出来。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2017-1-17 22:43:07 | 显示全部楼层
1431
        每一个灯有一个seg线,并且每一个灯都有一个共阳电路的控制逻辑。
        我们称之为选择线,sel0,sel1,sel5。
        那么如果我们用我们的逻辑来驱动的话呢,理论上说,我们把所有的灯控制线都接到我们的FPGA的控制逻辑上面,是可以驱动的。
        但是这些线总共加起来有多少呢?
        6盏灯,六九五十四,总共要54根线,这样我们印制板布线就会布得密密麻麻的。
        为了驱动这6个灯,要54根线。
        由于它是低速信号,通常低速信号我们会让它时分,从通道上时分。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2017-1-17 22:44:41 | 显示全部楼层
1432
        这是怎么做的呢?
        现在呢,我会把所有的段位线接在一起,所有的段位码接在一起。
        这是SEG线,总的就是seg[7:0],这个7:0会连到FPGA的输入端。
        Sel的这根线,从sel0到sel5。
        我们在这边呢,会做一个译码器decoder,给出一个地址,地址呢,能够从0数到5,三根线够了,2:0。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2017-1-17 22:46:11 | 显示全部楼层
1433
        也就是说,这个地址线,指向0的时候,sel0有效,其它的都没有效。
        指向1的时候,sel1有效,其它的都没有效。
        或者说,这个decoder就是一个独热码的译码器。
        就是把2:0的二进制,译成由6个bit组成的独热码,所以说这边输出的就是SEL的6根线,5:0。
        这个Decoder我们已经做到开发板上去了,不需要同时工作,我们FPGA驱动地址即可。
        当驱动为0的时候,我们把它的七段码送到总线上。

本帖子中包含更多资源

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

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

本版积分规则

关闭

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

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

GMT+8, 2024-12-24 04:23 , Processed in 0.062022 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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