FPGA学习笔面试记录(一)——入门指南

本科学的最好最感兴趣的就是数电啦,从简单的与或非,卡诺图,到3-8译码器,抢答器等等。数电老师是一个小胖子,讲课的时候喜欢理论联系实际,给我们讲打电话时分电路的普适原理,讲红绿灯之所以选择数字电路就是因为数字电路的最大优势就是可靠性,讲状态机的时候联系到饮料自助贩卖机,诸如此类,反正我是非常喜欢。后面了解到数字电路设计的进阶课程就是FPGA设计,本科的时候,老师提供了各方面的完备条件,买了板子,提供实验室等等,没珍惜,主要是实验室太适合睡觉吃火锅打游戏了。读研期间下决心好好学习FPGA,也决定了工作方向选择硬件这边。哈哈哈哈 絮絮叨叨这么久 开始第一次记录。

目录

1.FPGA基础语言——Verilog学习书籍推荐

2.Verilog学习网站推荐——HDLBits

3.FPGA主板选择

4.FPGA项目方向选择


1.FPGA基础语言——Verilog学习书籍推荐

        现在主要的硬件描述语言有VHDL,Verilog两种,在本科时老师教的VHDL,不过现在Verilog用的人越来越多,其更容易上手(与C语言语法比较类似),也更灵活,现在的IC设计基本都用Verilog。此外也包含systemC,systemVerilog等。其实有C语言的基础,学起Verilog的语言很简单,关键要有并行的概念,所有的module,assign,always都是并行的,这一点与软件语言有明显不同。我这里就推荐一下我多方面对比后选择学习Verilog书籍:

《verilog 数字系统设计教程》——夏宇闻

这本书对于入门是一本很好的书,通俗易懂,基础很扎实,强烈推荐,后续考虑上传电子资源。

2.Verilog学习网站推荐——HDLBits

https://hdlbits.01xz.net/wiki/Main_Page

我是强烈推荐边学习边练习,我的学习习惯是喜欢即时的看到结果,会好有成就感的。能更牢固的掌握所学知识,所以还是比较推荐这个网站,边学习边练习,赶脚还是不错的。

练习的时候,遇到不懂的bug可以参考Rong晔的讲解视频,讲得很好,粗中有细~

3.FPGA主板选择

FPGA学习需要主板吗?

我的回答是一定要!

因为上板调试有成就感,哈哈哈哈哈哈~

至于主板的具体型号系列我了解较少,就不过多推荐了,可以参考师兄师姐啥的。

我买的是特权同学的板子,这两年小梅哥做的不错,听过他的讲解,讲的比较细致,hin不戳~

4.FPGA项目方向选择

项目的话我选择的是图像处理,没有理由,就是因为菜,各自发挥吧~

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
很高兴听到您的学习历程,关于 PWM 脉冲宽度调制,我可以为您提供一些补充。 除了使用计数器和比较器的方法,还可以使用 FPGA 内部的 DDS(Direct Digital Synthesis)模块来实现 PWM 信号的生成。DDS 模块可以直接生成正弦波等连续信号,也可以通过修改相位和幅度控制信号的形态。 下面是一个使用 DDS 模块实现 PWM 的例子: ``` module pwm( input clk, input rst, input [7:0] duty_cycle, output reg pwm_out ); reg [31:0] phase_acc; // 相位累加器 reg [7:0] phase_inc; // 相位增量 // 相位增量为占空比的倒数 always @(*) begin phase_inc = 256 / duty_cycle; end // 相位累加器每个时钟周期加上相位增量 always @(posedge clk) begin if (rst) begin phase_acc <= 0; pwm_out <= 0; end else begin phase_acc <= phase_acc + phase_inc; if (phase_acc >= 2**32) begin phase_acc <= 0; end if (phase_acc[31]) begin pwm_out <= 1; end else begin pwm_out <= 0; end end end endmodule ``` 在这个代码中,我们使用了一个 32 位的相位累加器 phase_acc 和一个 8 位的 phase_inc 来控制 PWM 信号的生成。相位累加器每个时钟周期加上相位增量,当相位累加器的最高位为 1 时,PWM 输出为高电平。 相比使用计数器和比较器的方法,使用 DDS 模块可以更加灵活地控制 PWM 信号的形态和频率。但是,DDS 模块的实现需要占用 FPGA 的资源,需要根据具体应用场景进行选择。 希望这个回答能够为您提供一些参考。如果您有其他问题,可以随时问我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是刺猬吖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值