登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

发现vhdl真不好理解

作者:wswh2o 栏目:EDA技术
发现vhdl真不好理解
原来用c, 一切逻辑都是那么清楚, 现在用vhdl本来看着很正确的逻辑, 却不行。
也没有书讲为什么, 怎么办呀?

2楼: >>参与讨论
xjg1111
可以学verilog,比较相近,上手比较快。
 
3楼: >>参与讨论
wswh2o
不是说逻辑有问题
我觉得是不能用c语言的逻辑理解方式理解硬件描述语言, 但该怎么理解, 我还不知道。
总不能当成数字电路一点点分析吧, 那样他还有什么高级语言的优点。

4楼: >>参与讨论
wwwwggggqqqq
就是要很了解数字电路才行
就是要很了解数字电路才行,也就是说,用硬件描述语言比用原理图输入差不了太多。不要把它想像成高级语言,vhd或verilog只是对电路的描述

5楼: >>参与讨论
zydlucky
是啊!
确实,我看了一段时间之后都感觉在晕糊糊的!还是c的逻辑很清楚的说!


6楼: >>参与讨论
meismeisme
c跟verilog很像的
 
7楼: >>参与讨论
王紫豪
楼上的,你说反了!
 
8楼: >>参与讨论
籁儿
没什么
在我看来,C跟vhdl事实上是一样的
只是vhdl中用 end 代替了C 中的 {}
不知道这种说法是不是很肤浅

然后还有一点就是
vhdl里的PROCESS
对于敏感量的问题,我始终有点不理解
曾经有一次,提示PROCESS太复杂而报错
好像是敏感量不能嵌套
不知道是为什么

9楼: >>参与讨论
chunk
并行!!!
先把这两个字整明白.

10楼: >>参与讨论
yaohuitime
我感觉没有多大的区别,语法不同而已
 
11楼: >>参与讨论
zhangjins
VHDL程序是并行执行,C是顺序执行
VHDL程序是并行执行,就和实际的硬件电路一样,可能同时会有N个过程在执行。而C语言是顺序执行,你可以完全按照代码的前后顺序进行分析。理解这两种语言要用不同的思维,但具体到一小段程序,他们的道理是一样的。我也是新手,我是这样理解的。

* - 本贴最后修改时间:2006-10-10 9:36:37 修改者:zhangjins

12楼: >>参与讨论
wswh2o
h
在我看来,C跟vhdl事实上是一样的
只是vhdl中用 end 代替了C 中的 {}
不知道这种说法是不是很肤浅

不是那么简单吧?
vhdl的逻辑和c很不一样。
关键是并行。
也没本好的参考。

13楼: >>参与讨论
knightshui
我来告诉大家
数字电路学得不好,而想学好VHDL和verilog那是天方夜谭。记住,这两种语言都是硬件描述语言,它仅仅是在描述电路,不是像c那样随便怎么写都行的。找点资料看看吧。

14楼: >>参与讨论
crni
首先要理解电路
V(VHDL/verilog)与C的本质区别在于V是描述硬件行为的而C是写一段代码给CPU执行(转换为机器码后)的,其中的最关键的是V的并行性。开发工具(如QUARTUS II)把V语言经编译综合后产生在指定的器件下的布局布线信息,相当于指定器件里的哪个寄存器有什么行为,寄存器间有什么关联。所谓的并行就是说在任何时候对于每一个寄存器(或功能模块)只要有影响其值的关键信号变化输出就会作相应变化。而不像C那样要等到执行到某一句时才有变化(因为C是转换为机器码后给CPU执行的,所以只有执行到某一句该句才“起作用”,这也就是所谓的“串行性”)。
V的每一句话都是对电路的某部分的描述,把电路理解透了一切的变得简单了。

15楼: >>参与讨论
wswh2o
楼上看来是高手
给介绍本相关的好书

16楼: >>参与讨论
Dudly
多学习
恩,要找几本书好好看一下!!!

17楼: >>参与讨论
wangkj
就当并行机处理器好了
 
18楼: >>参与讨论
ziye123456
vhdl
我倒觉得逻辑上vhdl语言与c中有很大的相似.值得注意的是各种语句是并行执行的,还是顺序执行的,我觉得这点很重要的.有一点,数字电路学不好,vhdl想学好那几乎不可能1

19楼: >>参与讨论
wswh2o
s
多学习

恩,要找几本书好好看一下!!!


什么书最好?
看了一本国内的, 发现很多细节讲的很模糊。

20楼: >>参与讨论
wswh2o
这样的话
首先要理解电路

V(VHDL/verilog)与C的本质区别在于V是描述硬件行为的而C是写一段代码给CPU执行(转换为机器码后)的,其中的最关键的是V的并行性。开发工具(如QUARTUS II)把V语言经编译综合后产生在指定的器件下的布局布线信息,相当于指定器件里的哪个寄存器有什么行为,寄存器间有什么关联。所谓的并行就是说在任何时候对于每一个寄存器(或功能模块)只要有影响其值的关键信号变化输出就会作相应变化。而不像C那样要等到执行到某一句时才有变化(因为C是转换为机器码后给CPU执行的,所以只有执行到某一句该句才“起作用”,这也就是所谓的“串行性”)。
V的每一句话都是对电路的某部分的描述,把电路理解透了一切的变得简单了。




21楼: >>参与讨论
wswh2o
这样的话, 不是体现不出什么效率呀
另外, 在程序中不是常使用状态机处理吗?
这样好像都是逻辑和具体的数字电路联系不上?
还请高手说下自己的学习路径呀?

22楼: >>参与讨论
punkcs
硬件设计和软件设计的不同
vhdl(verilog)是硬件设计语言
pascal(c)是软件设计语言
表面上看起来,似乎他们之间的语法有些相似。
然而,pascal(c)的程序编译后存在某个存储器上,在目标cpu上运行,成为一种软件;
而vhdl(verilog)编写的程序是给当前的计算机“看”的,按照给定的程序(电路结构)制造一个硬件;而在最终产品中vhdl(verilog)程序不复存在。

23楼: >>参与讨论
xhjiang
个人觉得,数字电路的基础很重要
先把数字电路巩固一下,再结合synplify综合工具,来看看自己写的RTL代码综合出来的电路是什么,便于以后写代码。在写代码的时候基本上能清楚能综合出来的电路图会是怎么样的。从简单到复杂,写多了,分析多了,也就熟练了。不过我觉得VHDL写的代码是非常清晰的,很美观。毕竟外面公司用verilog的比较多,所以有空的时候我还是想把verilog弄好了,而且发现它写testbench要比VHDL反便。

24楼: >>参与讨论
fineamy
路过,
一帮人,这样的问题也这样兴师动众的来讨论!

25楼: >>参与讨论
wapple121
我也是新手
哈哈

26楼: >>参与讨论
wltc
bu shi ba !
我倒觉得c如果学的深的话能把人搞疯掉

27楼: >>参与讨论
fjbiao
你好??
能否给我提供个QUARTUS II??

28楼: >>参与讨论
yue1983
最近也在学VHDL,和搂主有同感
最近也在学VHDL,和搂主有同感!

29楼: >>参与讨论
buqibushe
浅谈
学习VHDL语言最好有硬件概念,就是要把数字电子学好(至少理解),没有这个,他就会把VHDL当作软件语言来做设计,这样就出现了软件式的VHDL,就像C一样,一行一行的分析下来就OK了,但VHDL不同,并行的概念还是关键,因为它的语句有对应硬件电路,要反映到硬件上去,最终成品是硬件.不能像C那样最终还是软件执行.
当然有C语言的编程经验对于学习VHDL的语言也许也是件好事,比如重载,循环等.


30楼: >>参与讨论
w_cici
时序设计
做FPGA的设计,要使用时序设计。多在“时序设计”上下功夫,就会找到学习的突破口。

31楼: >>参与讨论
yehsheng
国外的
 
32楼: >>参与讨论
rtosshu
不要把写C语言的思维用在VHDL描述上
VHDL的每一句话,你自己都得明白对应到硬件是什么电路,否则不可能写出稳定可靠高质量的代码来。

33楼: >>参与讨论
ytz963
还是要多做联系啊
   我也在学V,自己感觉还是和C有很大区别的。因为要用V的话,必须对电路模块有所了解和对应模块电路的执行过程要了解得很清楚。并行的东西就不用说,各位大虾已经说得很清楚了,我想说一点:PROCESS中的语句是顺序执行的。我也才刚刚学,不知道说得对不对,还请各位大虾指导。

参与讨论
昵称:
讨论内容:
 
 
相关帖子
cpld下载突然出问题了
我想给CPLD大概1K的时钟,用什么方法提供这个时钟容易?
什么软件打开*.dsn的电路图?
(哈尔滨)Altera Nios II 嵌入式处理器介绍及应用研讨会
Altera的FPGA的怪问题
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号