文号
875164
阅读
20315
回复
15
收藏
9
FPGA是用电路图还是代码开发的?
2020/03/16
IP:海南

因为喜欢研究数字电路,经常听说FPGA的强大,所以在淘宝上买了一块FPGA开发版来试试水,买来以后发现好像不是那么一回事,好像都是使用代码开发的,教程的都是代码的,不是电路图,那不是要重头开始学了吗?那太难了吧😭😭

2020-03-16_00.35.34.jpg


6年8个月前IP:湖北
875165
1楼

研究数字电路,任何复杂的数字逻辑都是基于功能模块的拼接和基础模块的设计。

基础模块的设计就会涉及到状态方程和状态图以及其他特定的设计方法。

前者对于FPGA开发来讲,会有一些成熟的IP核模块,高度定制化的功能模块靠自己设计。

也会有状态方程,对Verilog或者VHDL以及一些systemC之类的高级设计语言,

就是用^&|等最基本逻辑组合实现的组合逻辑,以及多个always块形成的触发、寄存机制。

如果LZ对数字电路了解足够深入,那么转移到FPGA上是不费吹灰之力的。

引用
评论
6年8个月前IP:浙江
875172
2楼

其实写verilog或者VHDL也是画电路图。

引用
评论
6年8个月前IP:广东
875173
3楼

其实也就是代码化的电路图

引用
评论
6年8个月前修改于 6年8个月前IP:海南
875174
4楼

在某些IDE上是可以用电路图开发的,当然也可以配合硬件描述代码混合开发。

比如说,厂商提供了IP核,在IDE上就显示为一个模块,有输入输出端口。你连接不同的现成模块相当于绘制电路图,最后编译烧录就行。

你也可以用硬件描述语言通过行为级描述定义自己的模块,直接用硬件描述语言描述所有的模块及其连接关系然后编译烧录,或者先生成有关你自己定义模块在电路图上,然后用走线连接不同的模块最终完成开发也行。


FPGA编写的是电路结构,你可以纯代码编辑,也可以图示化的编程,跟画电路图差不多但也有区别。

引用
评论
6年8个月前IP:海南
875175
5楼
引用rb_sama发表于1楼的内容
研究数字电路,任何复杂的数字逻辑都是基于功能模块的拼接和基础模块的设计。基础模块的设计就会涉及到状态方程和状态图以及其他特定的设计方法。前者对于FPGA开发来讲,会有一些成熟的IP核模块,高度定制化的...

就是有点不习惯代码代替电路图

引用
评论
6年8个月前IP:海南
875176
6楼
引用.........发表于2楼的内容
其实写verilog或者VHDL也是画电路图。

不一样吧,它是用代码代替电路图吧,相当于高级语言和低级语言

引用
评论
6年8个月前IP:香港
875177
7楼

楼主要是有耐心,用altera的quartus环境可以试试画电路图连接IP。

引用
评论
6年8个月前IP:海南
875178
8楼
引用icewind发表于3楼的内容
其实也就是代码化的电路图

电路图相当于低级语言,代码相当于高级语言

引用
评论
6年8个月前IP:海南
875179
9楼
引用0x00000000发表于4楼的内容
在某些IDE上是可以用电路图开发的,当然也可以配合硬件描述代码混合开发。比如说,厂商提供了IP核,在IDE上就显示为一个模块,有输入输出端口。你连接不同的现成模块相当于绘制电路图,最后编译烧录就行。你...

这样就方便很多了,模块化简化了不少,不知道哪个软件支持电路图开发?

引用
评论
6年8个月前IP:海南
875180
10楼
引用smith发表于7楼的内容
楼主要是有耐心,用altera的quartus环境可以试试画电路图连接IP。

这个软件可以画电路图额,刚好卖家送的资料里有这个,我试试看!

引用
评论
6年8个月前IP:四川
875189
11楼

语言非常简单,主要是算法,要学很多

引用
评论
6年8个月前IP:海南
875191
12楼
引用偷井盖的猫发表于11楼的内容
语言非常简单,主要是算法,要学很多

那不就和C差不多了

引用
评论
6年8个月前IP:贵州
875193
13楼

简单的逻辑可以原理图直接画 上一点规模的用HDL语言 但是和c程序不同的是 写硬描述一定要有原理图的思维

引用
评论
6年8个月前IP:贵州
875194
14楼

一般大脑里要先有了原理图或者小功能模块的逻辑结构 才用HDL进行描述

引用
评论
6年8个月前IP:海南
875197
15楼
引用ehco发表于14楼的内容
一般大脑里要先有了原理图或者小功能模块的逻辑结构 才用HDL进行描述

大概明白了

引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的