搜索
bottom↓
回复: 43

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

[复制链接]

出0入0汤圆

发表于 2017-1-22 19:55:52 | 显示全部楼层 |阅读模式
本帖最后由 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的资料比较多。

出0入211汤圆

发表于 2017-1-22 20:10:11 来自手机 | 显示全部楼层
楼主总结的很对,学C语言的再去搞verilog怎么都不适应,把C语言用得越转,用起verilog越别扭。

出0入0汤圆

发表于 2017-1-22 20:14:31 | 显示全部楼层
只是形似,不是神似......

出10入0汤圆

发表于 2017-1-22 20:14:55 | 显示全部楼层
赞同你的观点,我尝试学verilog就感到痛苦不堪。

出0入0汤圆

发表于 2017-1-22 20:15:29 | 显示全部楼层
我是先学的C,再VHDL,最后学的verilog,没有不适应

出0入442汤圆

发表于 2017-1-22 20:21:04 来自手机 | 显示全部楼层
lz也不要误导人是两种不同的编程语言。verilog和vhdl真不要求多少编程基础,但是要求扎实的数电基础,基础越扎实,上手就越快,没老师带着入门比较难。而c则要求会编程即可,想深入另说。

出0入0汤圆

发表于 2017-1-22 20:31:32 | 显示全部楼层
verilog  和VHDL  学名 硬件描述语言   他们是用来描述硬件的,所以,要学这东西要有硬件基础,主要是数字电路,赛灵思的奥特啦两家独大,各有一款比较经典的编译器,熟悉编译器也需要点工夫

出0入0汤圆

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

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

出0入17汤圆

发表于 2017-1-22 20:53:49 | 显示全部楼层
LZ难道没听说过当年华为把一堆搞软件的人弄去搞FPGA。。。

出0入93汤圆

发表于 2017-1-22 21:01:11 | 显示全部楼层
tianxian 发表于 2017-1-22 20:40
我的意思就是verilog和C是不一样的。
看到很多人推荐学verilog时 总说verilog像C  ...

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

出0入0汤圆

发表于 2017-1-22 21:21:36 | 显示全部楼层
要学习FPGA“并行”这一概念

出0入0汤圆

发表于 2017-1-22 21:32:55 来自手机 | 显示全部楼层
你这个标题就很误导人。并行硬件理解了就可以。

出30入54汤圆

发表于 2017-1-22 21:45:10 | 显示全部楼层
我们公司硬件部门的人都用脚本写Verilog,感觉特别高大上。服务器跑个Case花上一晚上,各种仿真

出0入0汤圆

 楼主| 发表于 2017-1-22 21:50:55 来自手机 | 显示全部楼层
waterghost 发表于 2017-1-22 21:32
你这个标题就很误导人。并行硬件理解了就可以。

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

出420入0汤圆

发表于 2017-1-22 21:56:43 | 显示全部楼层
不过我听说有c转换到VERILOG的软件,不知真假

出0入0汤圆

发表于 2017-1-22 22:23:32 | 显示全部楼层
觉得语法有点像,突然就觉得自己充满力量, 觉得 verilog也很简单 , 可能是藐视了它,就觉得简单。  当然要有硬件基础。

出0入0汤圆

发表于 2017-1-22 22:32:18 | 显示全部楼层
语法是像的,但是不能那过去用啊,毕竟它是硬件,做事不经过大脑的,需要的是对运行方法的熟悉

出0入0汤圆

发表于 2017-1-22 22:59:28 | 显示全部楼层
国内有个  叫  韩彬  的作者出了一本FPGA的书,  是目前本人见过写的最好的一本

出0入34汤圆

发表于 2017-1-22 23:24:46 | 显示全部楼层
楼主估计没玩过 Verilog 与 VHDL 这两种 HDL 互相转换的那小软件吧?!
若是...建议楼主去玩看看,个人感觉这两种 HDL 语言户转软件对于学习上多少还是会有些帮助的。

出0入91汤圆

发表于 2017-1-22 23:44:02 来自手机 | 显示全部楼层
mcu的顺序结构 跟verilog的并行思维根本不能放一起

出0入0汤圆

发表于 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,仅仅是一种描述手段,如果你愿意,也可以用原理图,只是,原理图不方便而已。
但是不管用什么方式描述,本质么有变。

出0入0汤圆

发表于 2017-1-23 07:06:24 来自手机 | 显示全部楼层
路过mark

出0入0汤圆

发表于 2017-1-23 08:25:38 | 显示全部楼层
有高人给我讲,写RTL的时候都是想着寄存器、组合电路来写;写出的代码知道对应的电路是什么;

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

出0入0汤圆

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

不宜只看可综合的部分。

出0入0汤圆

发表于 2017-1-23 09:32:23 | 显示全部楼层
前几年不是说 出了使用c语言进行fpga cpld编程了么?

出0入0汤圆

发表于 2017-1-23 09:41:04 来自手机 | 显示全部楼层
有C语言基础,再看Verilog代码,你发现即使没有学过Verilog,也能大概看懂一些,不是么?

出0入0汤圆

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

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

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

出0入0汤圆

发表于 2017-1-23 11:48:24 | 显示全部楼层
学习FPGA 第一步必须理解并行,写代码的时候就是搭建硬件电路。上电以后好像水流,在各个模块流动。

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

出0入0汤圆

发表于 2017-1-23 14:11:31 | 显示全部楼层
观点问题,把FPGA拿来当MCU用不管怎样入手都难。

出0入0汤圆

发表于 2017-1-23 17:54:29 | 显示全部楼层
最主要是思维方式,要用堆砌数字电路的思维思考,而不是用“软件编程”的思维思考。
只要有一定的数字电路基础,入门并不难。

出0入0汤圆

发表于 2017-1-23 18:08:58 | 显示全部楼层
思维方式不同,用软件的思维方式去做硬件,结果可想而知

出0入0汤圆

发表于 2017-1-23 21:20:17 | 显示全部楼层
会verilog之前怎么也理解不了OOP,会verilog之后OOP也懂了。

出0入4汤圆

发表于 2017-1-23 22:12:17 来自手机 | 显示全部楼层
先想好要实现的目标再用c或verilog来编码,你就不会感觉差异很大了。

出0入0汤圆

发表于 2017-1-23 22:35:21 | 显示全部楼层
语言格式很像C,变成思路肯定不一样了。毕竟一个是串行编程,一个是并行编程思路

出0入0汤圆

发表于 2017-1-24 01:49:51 | 显示全部楼层
verilog 在北设计出来的时候确实和c很像。但是实际研究就会发现实际上和c完全不同,甚至和任何一种编程语言都不同

出0入0汤圆

发表于 2017-1-24 13:10:46 来自手机 | 显示全部楼层
http://www.embedded.com/design/real-world-applications/4006420/The-C-Programmers-Guide-to-Verilog

出0入0汤圆

发表于 2017-1-24 21:14:11 | 显示全部楼层
飘过飘过飘过

出0入0汤圆

发表于 2017-1-28 17:02:28 | 显示全部楼层
verilog是硬件描述语言就像是用语言画原理图,C语言使CPU语言可以一句一句实现,其实是完全不一样的概念

出0入0汤圆

发表于 2017-1-29 15:09:09 来自手机 | 显示全部楼层
说的是书写像C吧

出0入71汤圆

发表于 2017-1-30 14:10:54 来自手机 | 显示全部楼层
这样说是的目的是鼓励电气类的学生去积极实践,对于计算机的学生就是毒药

出0入0汤圆

发表于 2017-1-30 18:35:47 | 显示全部楼层
prince2010 发表于 2017-1-22 20:14
只是形似,不是神似......

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

出0入0汤圆

发表于 2017-2-23 09:00:13 | 显示全部楼层
有感觉   开始就用单片机c语言编程  后来用vhdl编写一些简单的程序   再后来就是看别人的代码  基本上都是verilog语言的  感觉上没有太吃力   但是 用惯了c语言  再用硬件描述语言  确实是不得劲  不过是一开始  慢慢的就好了   

出0入137汤圆

发表于 2017-2-23 09:19:10 | 显示全部楼层
FPGA是个生态圈。其实如果第一次做fgpa项目,而且是公司第一人的话,那就无所谓,随意选择。如果公司有大牛,只能跟着大牛用。记得第一次做cpld项目,公司都是vhdl,所以必须用vhdl了。

出0入0汤圆

发表于 2017-2-23 23:32:34 | 显示全部楼层
有同样的感受,后来就学的VHDL了,Verilog和C容易混淆
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 23:09

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表