tianxian 发表于 2017-1-22 19:55:52

说verilog像c的 不要再误导人了

本帖最后由 tianxian 于 2017-1-23 09:47 编辑

编辑补充: 此贴的原意是,很多初学FPGA的人会纠结学VHDL还是verilog,这时就有人建议学verilog,而理由是verilog像C 比较容易学,甚至一些书本也是这么说的。本人不赞同这种理由。

------原贴--------------------
经常能看到有人说verilog像C,好学。
不明白说这种话的人是怎么想的,难道就因为几个关键字和C一样吗,什么编程语言之间没有几个相似的关键字。
verilog 和C 程序描述的行为是完全不同的。会C 再去学Verilog 其实非常难受,按C的思路来编verilog完全是行不通的。

veriog确实很像另一种编程语言,那就是VHDL,包括关键字也是相似的(这句话是很多余的),个人觉得学VHDL和verilog的难度是一样的。
我是先学了VHDL再换学verilog的 但并没有专门去看verilog的书,就是接手了别人verilog的代码,阅读修改没有障碍 两种语言非常相似,然後慢慢的习惯了用verilog。

很多人都会纠结是学VHDL还是verilog。个人建议是学verilog,理由是 "verilog像C 易学" 这绝对是不可能的。
建议学verilog的理由是 现在verilog的资料比较多。如果是10前就是VHDL的资料比较多(某前辈说的)

总结:
1. verilog不像C。verilog、VHDL是硬件描述语言,C是软件编程语言 两者没有可比性。
2. 建议学verilog,因为现在verilog的资料比较多。

hushaoxin 发表于 2017-1-22 20:10:11

楼主总结的很对,学C语言的再去搞verilog怎么都不适应,把C语言用得越转,用起verilog越别扭。

prince2010 发表于 2017-1-22 20:14:31

只是形似,不是神似......

yoz 发表于 2017-1-22 20:14:55

赞同你的观点,我尝试学verilog就感到痛苦不堪。

jianfengxixi 发表于 2017-1-22 20:15:29

我是先学的C,再VHDL,最后学的verilog,没有不适应{:lol:}

wye11083 发表于 2017-1-22 20:21:04

lz也不要误导人是两种不同的编程语言。verilog和vhdl真不要求多少编程基础,但是要求扎实的数电基础,基础越扎实,上手就越快,没老师带着入门比较难。而c则要求会编程即可,想深入另说。

luhuaren 发表于 2017-1-22 20:31:32

verilog和VHDL学名 硬件描述语言   他们是用来描述硬件的,所以,要学这东西要有硬件基础,主要是数字电路,赛灵思的奥特啦两家独大,各有一款比较经典的编译器,熟悉编译器也需要点工夫

tianxian 发表于 2017-1-22 20:40:44

wye11083 发表于 2017-1-22 20:21
lz也不要误导人是两种不同的编程语言。verilog和vhdl真不要求多少编程基础,但是要求扎实的数电基础,基础 ...

我的意思就是verilog和C是不一样的。
看到很多人推荐学verilog时 总说verilog像C{:sweat:}

zjykwym 发表于 2017-1-22 20:53:49

LZ难道没听说过当年华为把一堆搞软件的人弄去搞FPGA。。。

tim 发表于 2017-1-22 21:01:11

tianxian 发表于 2017-1-22 20:40
我的意思就是verilog和C是不一样的。
看到很多人推荐学verilog时 总说verilog像C...

嗯,是这个意思,原来我就被误导过

yiminglei_2 发表于 2017-1-22 21:21:36

要学习FPGA“并行”这一概念

waterghost 发表于 2017-1-22 21:32:55

你这个标题就很误导人。并行硬件理解了就可以。

cloudboy 发表于 2017-1-22 21:45:10

我们公司硬件部门的人都用脚本写Verilog,感觉特别高大上。服务器跑个Case花上一晚上,各种仿真

tianxian 发表于 2017-1-22 21:50:55

waterghost 发表于 2017-1-22 21:32
你这个标题就很误导人。并行硬件理解了就可以。

标题看久确实有点问题,已改

asma 发表于 2017-1-22 21:56:43

不过我听说有c转换到VERILOG的软件,不知真假

88mw300 发表于 2017-1-22 22:23:32

{:smile:} 觉得语法有点像,突然就觉得自己充满力量, 觉得 verilog也很简单 , 可能是藐视了它,就觉得简单。当然要有硬件基础。

qingyin2009 发表于 2017-1-22 22:32:18

语法是像的,但是不能那过去用啊,毕竟它是硬件,做事不经过大脑的,需要的是对运行方法的熟悉

luhuaren 发表于 2017-1-22 22:59:28

国内有个叫韩彬的作者出了一本FPGA的书,是目前本人见过写的最好的一本

xyz543 发表于 2017-1-22 23:24:46

楼主估计没玩过 Verilog 与 VHDL 这两种 HDL 互相转换的那小软件吧?!
若是...建议楼主去玩看看,个人感觉这两种 HDL 语言户转软件对于学习上多少还是会有些帮助的。

ackyee 发表于 2017-1-22 23:44:02

mcu的顺序结构 跟verilog的并行思维根本不能放一起

偏偏倒倒 发表于 2017-1-22 23:47:45

本帖最后由 偏偏倒倒 于 2017-1-22 23:49 编辑

关键一点,会C的学Verilog不适应,不是语法理解的问题。
而是,相当部分C玩的好的,硬件基础比较薄弱,因此,脑袋里面没有硬件的概念。
而这个语言又是描述硬件的,没有硬件概念做参照,脑子里面只有软件概念来参照,这才是根本原因。

我就没看VHDL,C也用得还算熟悉,项目需要用Verilog的时候,我花了一个星期看Verilog语法和看一些例子以及testbech。
然后就开始编写Verilog代码。没感到有任何困难,敲了一万行左右Verilog代码,现在回过头来看代码质量都还可以。

另外,我比较反感不少人用Verilog程序这个词,更喜欢用代码。
因为,程序的概念是建立在指令+算法上的,用一系列的指令序列来表达算法。
而在FPGA上,根本没有指令的概念,何来程序,用这个词就是错误的。
至于Verilog,VHDL,仅仅是一种描述手段,如果你愿意,也可以用原理图,只是,原理图不方便而已。
但是不管用什么方式描述,本质么有变。

Excellence 发表于 2017-1-23 07:06:24

路过mark

jm2011 发表于 2017-1-23 08:25:38

有高人给我讲,写RTL的时候都是想着寄存器、组合电路来写;写出的代码知道对应的电路是什么;

做软件的多多少少都会有点流程图的感觉;先判断一下,成立了跳着,不成立跳那。。。:)

dr2001 发表于 2017-1-23 08:31:57

Verilog在定义的时候,至少有Description,Simulation,Verification几个层次的需求。
仿真、验证方面它实际上类比于基于事件触发的顺序编程语言模型;Verilog本身的抽象行为模型也大体是这么定义的。

不宜只看可综合的部分。

紫胤真人 发表于 2017-1-23 09:32:23

前几年不是说 出了使用c语言进行fpga cpld编程了么?

xzhiwei 发表于 2017-1-23 09:41:04

有C语言基础,再看Verilog代码,你发现即使没有学过Verilog,也能大概看懂一些,不是么?

jm2011 发表于 2017-1-23 11:32:32

紫胤真人 发表于 2017-1-23 09:32
前几年不是说 出了使用c语言进行fpga cpld编程了么?

用的生不如死,编程难度提高了好几倍;

现在xilinx推了半天应用的还是很少

waterghost 发表于 2017-1-23 11:48:24

学习FPGA 第一步必须理解并行,写代码的时候就是搭建硬件电路。上电以后好像水流,在各个模块流动。

MCU   工作程序都是一行一行运行。
FPGA工作就是硬件电路。

peecehood 发表于 2017-1-23 14:11:31

观点问题,把FPGA拿来当MCU用不管怎样入手都难。

not_at_all 发表于 2017-1-23 17:54:29

最主要是思维方式,要用堆砌数字电路的思维思考,而不是用“软件编程”的思维思考。
只要有一定的数字电路基础,入门并不难。

7802848 发表于 2017-1-23 18:08:58

思维方式不同,用软件的思维方式去做硬件,结果可想而知

racede 发表于 2017-1-23 21:20:17

会verilog之前怎么也理解不了OOP,会verilog之后OOP也懂了。

thxcai2 发表于 2017-1-23 22:12:17

先想好要实现的目标再用c或verilog来编码,你就不会感觉差异很大了。

yiwei0397 发表于 2017-1-23 22:35:21

语言格式很像C,变成思路肯定不一样了。毕竟一个是串行编程,一个是并行编程思路

辰星和月 发表于 2017-1-24 01:49:51

verilog 在北设计出来的时候确实和c很像。但是实际研究就会发现实际上和c完全不同,甚至和任何一种编程语言都不同

mylogin 发表于 2017-1-24 13:10:46

http://www.embedded.com/design/real-world-applications/4006420/The-C-Programmers-Guide-to-Verilog

worldof422 发表于 2017-1-24 21:14:11

飘过飘过飘过

kingboy1000 发表于 2017-1-28 17:02:28

verilog是硬件描述语言就像是用语言画原理图,C语言使CPU语言可以一句一句实现,其实是完全不一样的概念

huangqi412 发表于 2017-1-29 15:09:09

说的是书写像C吧

dellric 发表于 2017-1-30 14:10:54

这样说是的目的是鼓励电气类的学生去积极实践,对于计算机的学生就是毒药

sungngai 发表于 2017-1-30 18:35:47

prince2010 发表于 2017-1-22 20:14
只是形似,不是神似......

楼主理解错了,三楼说得对哈

unnormal 发表于 2017-2-23 09:00:13

有感觉   开始就用单片机c语言编程后来用vhdl编写一些简单的程序   再后来就是看别人的代码基本上都是verilog语言的感觉上没有太吃力   但是 用惯了c语言再用硬件描述语言确实是不得劲不过是一开始慢慢的就好了   

pulan 发表于 2017-2-23 09:19:10

FPGA是个生态圈。其实如果第一次做fgpa项目,而且是公司第一人的话,那就无所谓,随意选择。如果公司有大牛,只能跟着大牛用。记得第一次做cpld项目,公司都是vhdl,所以必须用vhdl了。

596142041 发表于 2017-2-23 23:32:34

有同样的感受,后来就学的VHDL了,Verilog和C容易混淆
页: [1]
查看完整版本: 说verilog像c的 不要再误导人了