FPGA与MCU,DSP(如C6000,C5000等)等设计思想的异同

本篇文章讲述FPGA设计思路与MCU/DSP的异同。前阵子博主繁杂事情较多,故一直没有时间更新博客,言归正传,接下来开始描述:

   传统的MCU/DSP基于软件思维,软件思维的特点基本上是串行,即便是用多核的DSP或者MCU进行数据的并行处理,在各个核内部运行的程序也是串行的。所谓的串行,举个例子,比如说C语言:

            for(i = 0; i < 50; i++)

                  a[i] = i;

            k = i/4; 

    该语句的执行顺序基本上是这样的:首先第一次进入for循环时,i被赋值为0,然后下一个指令周期(假设该CPU是N级流水线)跟50进行比较,小于50则进行a[0]=0,然后i自加1变成1,跟50进行再一次比较,小于则进行a[1]=1,否则则退出循环。。。如此反复,当退出for循环后,执行k = i/4,此时i=50。这是一种串行的思想。其次还有一个特点,即在设计程序解决实际问题时,设计者的思维集中于事件驱动,即当发生了某些事情(比如中断,或者查询某个变量)后进行相应的处理。

    而对于FPGA来说,则是一种硬件式的处理思维。对于每一条verilog/vhdl语言来说,经过综合后就是一个实实在在的逻辑电路。举个例子:

    assign a = b&e;

    assign c = d&f;

    这两条语句并不是串行的关系,经过综合后,将会形成两个二输入与门,其中一个与门的输入是b和e,输出是a, 另外一个与门的输出是c,输入是d和f。这两条语句/两个电路之间并没有所谓的时间上串行的关系,两者之间属于独立的两个电路,都是在同一时间内一起对不同的激励/输入发生作用的。这也是为什么说FPGA是一种硬件的设计思想,尽管某些硬件描述语言(verilog)看起来很像C语言,其实是不一样的一种设计思想。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值