说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的资料比较多。 楼主总结的很对,学C语言的再去搞verilog怎么都不适应,把C语言用得越转,用起verilog越别扭。 只是形似,不是神似...... 赞同你的观点,我尝试学verilog就感到痛苦不堪。
我是先学的C,再VHDL,最后学的verilog,没有不适应{:lol:} lz也不要误导人是两种不同的编程语言。verilog和vhdl真不要求多少编程基础,但是要求扎实的数电基础,基础越扎实,上手就越快,没老师带着入门比较难。而c则要求会编程即可,想深入另说。 verilog和VHDL学名 硬件描述语言 他们是用来描述硬件的,所以,要学这东西要有硬件基础,主要是数字电路,赛灵思的奥特啦两家独大,各有一款比较经典的编译器,熟悉编译器也需要点工夫 wye11083 发表于 2017-1-22 20:21
lz也不要误导人是两种不同的编程语言。verilog和vhdl真不要求多少编程基础,但是要求扎实的数电基础,基础 ...
我的意思就是verilog和C是不一样的。
看到很多人推荐学verilog时 总说verilog像C{:sweat:} LZ难道没听说过当年华为把一堆搞软件的人弄去搞FPGA。。。 tianxian 发表于 2017-1-22 20:40
我的意思就是verilog和C是不一样的。
看到很多人推荐学verilog时 总说verilog像C...
嗯,是这个意思,原来我就被误导过 要学习FPGA“并行”这一概念 你这个标题就很误导人。并行硬件理解了就可以。 我们公司硬件部门的人都用脚本写Verilog,感觉特别高大上。服务器跑个Case花上一晚上,各种仿真 waterghost 发表于 2017-1-22 21:32
你这个标题就很误导人。并行硬件理解了就可以。
标题看久确实有点问题,已改 不过我听说有c转换到VERILOG的软件,不知真假 {:smile:} 觉得语法有点像,突然就觉得自己充满力量, 觉得 verilog也很简单 , 可能是藐视了它,就觉得简单。当然要有硬件基础。 语法是像的,但是不能那过去用啊,毕竟它是硬件,做事不经过大脑的,需要的是对运行方法的熟悉 国内有个叫韩彬的作者出了一本FPGA的书,是目前本人见过写的最好的一本 楼主估计没玩过 Verilog 与 VHDL 这两种 HDL 互相转换的那小软件吧?!
若是...建议楼主去玩看看,个人感觉这两种 HDL 语言户转软件对于学习上多少还是会有些帮助的。
mcu的顺序结构 跟verilog的并行思维根本不能放一起 本帖最后由 偏偏倒倒 于 2017-1-22 23:49 编辑
关键一点,会C的学Verilog不适应,不是语法理解的问题。
而是,相当部分C玩的好的,硬件基础比较薄弱,因此,脑袋里面没有硬件的概念。
而这个语言又是描述硬件的,没有硬件概念做参照,脑子里面只有软件概念来参照,这才是根本原因。
我就没看VHDL,C也用得还算熟悉,项目需要用Verilog的时候,我花了一个星期看Verilog语法和看一些例子以及testbech。
然后就开始编写Verilog代码。没感到有任何困难,敲了一万行左右Verilog代码,现在回过头来看代码质量都还可以。
另外,我比较反感不少人用Verilog程序这个词,更喜欢用代码。
因为,程序的概念是建立在指令+算法上的,用一系列的指令序列来表达算法。
而在FPGA上,根本没有指令的概念,何来程序,用这个词就是错误的。
至于Verilog,VHDL,仅仅是一种描述手段,如果你愿意,也可以用原理图,只是,原理图不方便而已。
但是不管用什么方式描述,本质么有变。 路过mark 有高人给我讲,写RTL的时候都是想着寄存器、组合电路来写;写出的代码知道对应的电路是什么;
做软件的多多少少都会有点流程图的感觉;先判断一下,成立了跳着,不成立跳那。。。:)
Verilog在定义的时候,至少有Description,Simulation,Verification几个层次的需求。
仿真、验证方面它实际上类比于基于事件触发的顺序编程语言模型;Verilog本身的抽象行为模型也大体是这么定义的。
不宜只看可综合的部分。 前几年不是说 出了使用c语言进行fpga cpld编程了么? 有C语言基础,再看Verilog代码,你发现即使没有学过Verilog,也能大概看懂一些,不是么? 紫胤真人 发表于 2017-1-23 09:32
前几年不是说 出了使用c语言进行fpga cpld编程了么?
用的生不如死,编程难度提高了好几倍;
现在xilinx推了半天应用的还是很少 学习FPGA 第一步必须理解并行,写代码的时候就是搭建硬件电路。上电以后好像水流,在各个模块流动。
MCU 工作程序都是一行一行运行。
FPGA工作就是硬件电路。
观点问题,把FPGA拿来当MCU用不管怎样入手都难。 最主要是思维方式,要用堆砌数字电路的思维思考,而不是用“软件编程”的思维思考。
只要有一定的数字电路基础,入门并不难。 思维方式不同,用软件的思维方式去做硬件,结果可想而知 会verilog之前怎么也理解不了OOP,会verilog之后OOP也懂了。 先想好要实现的目标再用c或verilog来编码,你就不会感觉差异很大了。 语言格式很像C,变成思路肯定不一样了。毕竟一个是串行编程,一个是并行编程思路 verilog 在北设计出来的时候确实和c很像。但是实际研究就会发现实际上和c完全不同,甚至和任何一种编程语言都不同 http://www.embedded.com/design/real-world-applications/4006420/The-C-Programmers-Guide-to-Verilog 飘过飘过飘过 verilog是硬件描述语言就像是用语言画原理图,C语言使CPU语言可以一句一句实现,其实是完全不一样的概念 说的是书写像C吧 这样说是的目的是鼓励电气类的学生去积极实践,对于计算机的学生就是毒药 prince2010 发表于 2017-1-22 20:14
只是形似,不是神似......
楼主理解错了,三楼说得对哈 有感觉 开始就用单片机c语言编程后来用vhdl编写一些简单的程序 再后来就是看别人的代码基本上都是verilog语言的感觉上没有太吃力 但是 用惯了c语言再用硬件描述语言确实是不得劲不过是一开始慢慢的就好了 FPGA是个生态圈。其实如果第一次做fgpa项目,而且是公司第一人的话,那就无所谓,随意选择。如果公司有大牛,只能跟着大牛用。记得第一次做cpld项目,公司都是vhdl,所以必须用vhdl了。 有同样的感受,后来就学的VHDL了,Verilog和C容易混淆
页:
[1]