FPGA和单片机什么区别

FPGA和单片机什么区别?

写给初学者的小blog(描述不对的,请评论区指出谢谢):
  单片机应该是大家最开始接触的小soc,通过编写c/汇编,可以实现简单的逻辑控制功能;
fpga,通过编写verilog 描述相关的逻辑,或者利用软件中自带的库,搭建简单的逻辑电路,实现简单的控制;

Verilog 简单介绍

  在这里简单介绍下verilog,硬件描述语言,其实就是写 数字电路,通过综合工具映射成网表,之后经过工具软件转化,烧录到fpga单板上;fpga是硬件电路,有并行,速度快等特点,是可配置,可编程的可重构的硬件
首先一个简单的verilog语句块:

wire a, b, c; 
reg d;             
always@(posedge clk)
if(a==1'b1)
    d<= b+c;
else
    d<= c;

  定义了3个1bit的线,1bit的register,在上升沿触发,其实综合后是一个触发器,在a是高电平1时候,把加法器(b+c)的结果,延时1个clk ,给d;其他情况,即a 不是高电平时候,把c信号线,延时一拍给d;简单的架构图如下;
  在数字芯片领域,如果这么写,最后在实现时候,就是加法器,触发器,寄存器等结构,其他语句就是分支选择器,选通器,锁存器等;
简单的架构图

fpga:

  fpga呢?由 可编程逻辑单元(PLU)、可编程互连资源(PIR)、(存储器、时钟管理单元、高速收发器)等外围电路组成;
主要是 查找表结构+可编程的互连单元

两个具体例子:

查找表是类似 ram 结构可读 写 内容的存储单元,
  比如 verilog描述 c = a&b ;asic电路上是一个与门
  fpga查找表中,不同地址4个条目依次存储 0,0,0,1;如果a和b 有一个是0 则查找出0,两个都为1,则查找出1;fpga中不一定是一个与门
  即查找表存储结果ab对应地址,00,01,01对应数据0存储条目,11对应1数据存储条目;
  可配置的LUT如下:

ab输入作为查找表的地址c作为查询结果 可以任意配置
000
010
100
111

又如:c= a^b ,电路上一个异或门;
地址依次升高,查找表可以配置(0,1,1,0);
对应 a b查找地址依次为(00,01,10,11);

   此时,可以看出,通过一个深度4,宽度1的查找表,即可实现 2输入的,与,异或,同或,或等任意逻辑。此表可以配置,通过配置查找表的不同条目存储的数据内容,对外呈现出不同的数字逻辑基本单元;
  这便是fpga可编程的原因;fpga工具软件会对verilog描述的电路完成复杂的映射,时序优化,布局布线。
  也可以看出,fpga可编程性是牺牲了基本的逻辑单元的面积的,本来一个与门实现的功能,要用一个查找表;所以一个专用数字芯片的功能,映射到fpga上需要的资源会变大很多;

单片机:

  单片机就比较简单了,在固定的电路上,通过c/Assembly 语言,映射成二进制文件,配置到写好的电路的寄存器,ram中;cpu自动取指令,解码,译码,执行指令,结合外围电路等,实现对外器件的控制;
  当然,如果了解cpu结构,接口技术,常用的协议等,用一个复杂点的fpga单板,配合良好的编码风格,可以给fpga编码,让fpga像单片机那样工作,
也就是说fpga通过使用硬件描述语言设计可以作为单片机使用

  • 17
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

数码逐渐远去

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

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

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

打赏作者

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

抵扣说明:

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

余额充值