打印
[FPGA]

分享FPGA经验(连载)

[复制链接]
28673|164
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
andous|  楼主 | 2014-1-2 12:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想开个连载的帖子,分享这么多年积累的FPGA开发经验,包括项目的开发流程,开发过得接口,开发经历,以及经验积累方面的。
不知道大家觉得如何?

相关帖子

沙发
rensailin| | 2014-1-2 20:15 | 只看该作者
必须顶!别只说不做啊。。。

使用特权

评论回复
板凳
liangyaocong| | 2014-1-3 20:23 | 只看该作者
最重要还是经验之谈,学习了。快快上传吧

使用特权

评论回复
地板
hjz07091982| | 2014-1-9 23:41 | 只看该作者
很好啊

使用特权

评论回复
5
liubz258| | 2014-1-10 10:40 | 只看该作者
太赞了!顶!顶!顶!!!

使用特权

评论回复
6
漂流的船儿| | 2014-1-14 16:39 | 只看该作者
继续啊

使用特权

评论回复
7
andous|  楼主 | 2014-1-20 16:10 | 只看该作者
看到有大家的回复,楼主内心激动啊。
最近主要是回家过年,各种抢火车票中,你也知道12306.....总之你们懂得,所以就没有时间顾得上,今天一看这么多人捧场,我能不激动嘛,谢谢大家捧场。
楼主说话算话,以后持续更新中

使用特权

评论回复
8
andous|  楼主 | 2014-1-20 16:25 | 只看该作者
谈FPGA之前,先说说生产厂商吧,科普一下
全球知名的FPGA生产厂商有:
1.Altera,开发平台是Quartus II
2.Xilinx 开发平台是ISE
3.Actel ,开发平台是Libero
4.Lattice
5.Atmel
其中
Altera作为世界老牌可编程逻辑器件的厂家,是可编程逻辑器件的发明者,开发软件MAX+PLUSII和QuartusII。记得上学的时候用的用的就是altera的芯片,当时的工具也是MAX,现在感觉当时的软件很强大了,现在感觉比较弱智了,下载FPGA就是用串口,当时的时钟速率也就是25M左右,用的是试验箱,就是一个大箱子,里面有板子和说明,板子上还有8位数码管和跳线,当时感觉好神奇啊,现在感觉那是个垃圾、废物,呵呵,忘记是那个厂家了。听导师说还挺贵,不过导师也不怎么懂。之前导师伟大,现在感觉也很弱智,呵呵,调侃一下
Xilinx是FPGA的发明者,拥有世界一半以上的市场,提供90%的高端65nmFPGA产品,开发软件为ISE,其产品主要用于军用和宇航。
毕业后就是xilinx的,altera的很少用,大家一定问为什么,我也毕业的时候也是这样问老大的,老大说altera的不好用,我也有点气不忿儿,现在看来确实是这样,总结几点:
1:xilinx的资源丰富,新手会说很杂不容易用,但是如果上手之后,里面的资源确实会为你处理带来方便,比如说BUFG,IODELAY,ODDR,OBUFT等等这些小的资源,还有一些IPcore,altera的好像要少些。
FAE水平高,比如我们坛主猴哥就是xilinx的。
2:xilinx逻辑量比较大,一些大容量的FPGA好像altera没有这么大的,比如V5,V6,V7,K7,这些altera是远远没有的。不过也带来了隐患,比如说散热
不过有一点xilinx好像没有altera的做的好,那就是高速查分线,xilinx叫GTP,GTX,GTH,现在好像也区别不大了
Altera和Xilinx主要生产一般用途FPGA,其主要产品采用RAM工艺。Actel主要提供非易失性FPGA,产品主要基于反熔丝工艺和FLASH工艺。

使用特权

评论回复
9
andous|  楼主 | 2014-1-20 16:26 | 只看该作者
Lattice的芯片也用过,主要还是CPLD,用着没有感觉到区别,感觉还可以。

使用特权

评论回复
10
andous|  楼主 | 2014-1-22 11:52 | 只看该作者
FPGA 语言verilog 和VHDL
讲到FPGA语言就不得不讲verilog 和VHDL
本人大学学的是VHDL,工作就一直在用VHDL
我觉得veilog更接近底层,关键是更接近C,所以被FPGA工程师所喜欢
HDL特别是Verilog HDL得到在第一线工作的设计工程师的特别青睐,不仅因为HDL与C语言很相似,学习和掌握它并不困难,更重要的是它在复杂的SOC的设计上所显示的非凡性能和可扩展能力。 在学习HDL语言时,笔者认为先学习VerilogHDL比较好:一是容易入门;二是接受Verilog HDL代码做后端芯片的集成电路厂家比较多,现成的硬核、固核和软核比较多。
实现起来
veilog更容易实现
比如说要例化多个模块,我们就可以用for语句,并且这个是可综合的
我们在申明总线时,由于比较繁琐的语句的时候,稍不注意还会有书写错误
也许在veilog里面,只需要一个for语句就能搞定
begin : loop
integer i;
for(i = 0; i <= 7; i = i + 1)
begin
            if(int_stat_clr[i] ==1)
                 int_stat[i]   <= 0 ;
              end
end // block: loop71
这就话的意思就是如果stat_clr寄存器某一位为1,那么相对应的stat下面的一位就为1,这样写是不是很简单

使用特权

评论回复
11
affrong| | 2014-1-22 13:33 | 只看该作者
楼主我C也不会啊 搞FPGA 既要懂软件又要会硬件,真的挺难得!

使用特权

评论回复
12
ifpga| | 2014-1-22 16:13 | 只看该作者
affrong 发表于 2014-1-22 13:33
楼主我C也不会啊 搞FPGA 既要懂软件又要会硬件,真的挺难得!

不懂C,学FPGA最好
C用的时间太长了
学起FPGA反而麻烦
C所有代码都是顺序执行的
而FPGA是并行的
这个转换有点儿大

使用特权

评论回复
13
阳光豆苗| | 2014-1-23 14:42 | 只看该作者
前来支持,楼主继续啊,好贴,顶起。

使用特权

评论回复
14
wangzeyue| | 2014-1-23 15:00 | 只看该作者
好贴,顶起

使用特权

评论回复
15
raoxianbin| | 2014-1-23 15:24 | 只看该作者
坐等更新啊  楼主

使用特权

评论回复
16
andous|  楼主 | 2014-1-23 16:16 | 只看该作者
ifpga 发表于 2014-1-22 16:13
不懂C,学FPGA最好
C用的时间太长了
学起FPGA反而麻烦

言之有理,FPGA主要是学会硬件思想,FPGA语句基本上是并行操作。在加上C语言的描述。至于说学好确实要磨练,靠几节课堂学习是不行的

使用特权

评论回复
17
andous|  楼主 | 2014-1-23 16:30 | 只看该作者
说说wire 和reg的区别
    我们可以说reg相当于存储单元,wire相当于物理连线,但是新学FPGA的会问,存储单元是什么,其实说白了就是D触发器,有人问D触发器是什么,我晕,兄弟,学习数电的时候是不是一直在睡觉,有木有啊!
如果还是搞不明白,那你可以这么认为,wire相当于物理连线,就当与铜丝,PCB板子的走线,reg相当于芯片。wire走线延时小,几乎可以忽略不计。reg一个时钟的延时,这样就够了。
    赋值:
    wire对应的是assign,always,reg对应的always或者initial。
    例如:
    assign a = b ;把b点和a点相连接
    always @(b)
    a =b ;
       表示变化出发
      always @(posedge clk)
    a<=b ;
       把b线经过一级D触发器给a
      可以看出
这时:
1、wire型的变量综合出来一般是一根导线;
2、reg变量在always块中有两种情况:
(1)、always后的敏感表中是b 形式的,也就是不带时钟边沿的,综合出来还是组合逻辑
(2)、always后的敏感表中是(posedge clk)形式的,也就是带边沿的,综合出来一般是时序逻辑,会包含触发器(Flip-Flop)

FPGA用的所有的信号赋值都是wire 和 reg ;
学会了这两个也就掌握了FPGA的基本
  

使用特权

评论回复
18
漂流的船儿| | 2014-1-23 16:41 | 只看该作者
支持楼主

使用特权

评论回复
19
bosenliu| | 2014-1-24 14:36 | 只看该作者
affrong 发表于 2014-1-22 13:33
楼主我C也不会啊 搞FPGA 既要懂软件又要会硬件,真的挺难得!

我也不懂c,现在照样在做fpga。

使用特权

评论回复
20
andous|  楼主 | 2014-2-11 16:55 | 只看该作者
春节归来

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

275

帖子

8

粉丝