小插曲——浅谈FPGA的学习心得

起因

        因为我现在的情况是:大三上学期临近期末,而且我这个学期有FPGA的课程,虽然学校教的东西很浅薄,感觉就像是告诉我有FPGA这个东西就没了(哈哈哈,其实是因为我没听懂)。

        我们学校期末安排的实训内容也是基于FPGA的,我也是捣鼓了好几天才弄出来,本着”没有复盘的学习=白学“思想,我还是要为本学期FPGA的学习写一篇心得。

话不多说

FPGA和STM32有什么区别?

        毕竟也是学了1个学期的FPGA,虽然只做过一些项目,比如点灯、流水灯,唯一拿的出手的项目其实也是把别人的东西缝缝补补了一下,自己打的代码也只有几十行。
不过FPGA确实和STM32、51的编译思维有很大的不同:
        (1)

        STM32、51的编程思想和C语言的编程思想一样,都是从上而下,逐条语句执行的,就是给人一种多米诺骨牌效应的感觉,就是因为前面的事情做了,然后,后面的
东西才能被执行;

           而FPGA的编程思路就不同了,给我的感觉就是——”到点触发“,FPGA的所有功能的运行基础就是—时钟。比如,要让蜂鸣器报警,就设置一个时钟,让时钟
每计25000000次就切换一次电平状态,让蜂鸣器一会叫,一会不叫;比如,要让数码管每秒动态显示一次,那也让时钟每计25000000次就切换一次状态。而且,也是最重要的
一个区别,就是这两个功能可以同时实现,在STM32中若要实现蜂鸣器报警、数码管显示,那就先让蜂鸣器报警,再让数码管显示,而FPGA中,这两个功能可以同时实现
。没有先后之分,只要时钟计25000000次就行。我感觉这就是FPGA和32之类的单片机的区别。
        (2)

        从功能定位上看:32\51我感觉都是初级实用芯片,价格低廉,使用方便;而FPGA的定位是用来构造芯片的芯片,价格高昂,一般是用于高端仪器设备;而且我听说,
当然,仅是我听说,如果想靠FPGA找工作的话,学历起码要研究生以上。
所以,我还是老老实实的学单片机吧【手动流泪】

output型和input型的使用

问:为什么有时候不需要加reg[]/wire[],有时候又要加reg[]/wire[]?

其实,所有的output和input只要没有具体定义变量为wire或者reg,那么就默认为wire型,且默认位宽为1,仅可表示1或者0。

reg和wire的赋值关系?

若要对wire型进行赋值,则要用assign

若要对reg型进行赋值,则要在alwasy块中的条件判断语句

input和output、reg和wire的关系

在子函数里面,用input定义的值如果要用于计算的话那就赋为wire,output就 赋值为reg,但在顶层模块中,input为reg,output为wire

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值