微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 工程师心得--数字电路的实现

工程师心得--数字电路的实现

时间:10-02 整理:3721RD 点击:
10年前,我用了三个月时间学习了VHDL语言,并在FPGA和IC上得到了验证,那时对数字的理解是完全数学式的,对编译器并不关注。后来发表了一篇感想,引起了一些朋友的关注。05年后我有改行,做模拟电路,从头来。
     现在的模拟电路有很多需要数字电路支持,而很多Process是没有Library的,需要用Schematic方式输入,再用Hspice Simulation,这样用模拟电路方法设计数字电路,无疑是极大的挑战,特别是状态一多,你几乎无能为力。 但经过这次自己手动编译,也能大致了解编译器的原理了。
     我的项目是一通讯协议,如果是用VHDL,很快就可以完成,但用原理图, 就不知从何下手了,特别是协议中的状态变量多的时候,电路复杂程度是几何级数上升。但越复杂才越是有意思,既然机器能实现,人工更能实现,而且还能更简洁。于是开始对语言结构进行再学习。之前也学习了各种软件语言,特别是汇编语言, 与硬件语言已很接近了。 软件语言特点是Step by Step, 一步一步,很清晰,只要能画出框图就能写出程序;而硬件语言是并行语言,变量变化就没有软件语言那么清晰,因此需要对Process()动作过程需要详细描述。
    我的经验是:状态机可以实现一切,这一点与语言设计一致的。 把状态图画出来,分析状态之间的关系,将整个Process()用三句话来解决问题:状态/条件/执行,其它的就是数字电路的基本功了。现在的IC也回来了,协议虽然有点复杂,实现电路逻辑大概8K个反相器,IC测试功能正常了。经过这次尝试,对编译器有了些理解,因时间关系,今天写到这里, 有兴趣的朋友可以和我继续交流。

非常不错,希望继续写下去

学习了,状态机可以实现一切。

用schematic实现复杂状态机,果然厉害

学习了

状态机真的是一切?顶!

数字电路设计   本质上是电路本身,即你得明白你写出的是什么电路,精确到cell,各种tool如何映射和模拟电路如果把这方向看成写程序,
精确上讲已经不是设计电路了。所以大陆相关人员平均水平差也是可以理解的,把这方向当糊口工具了。

这就是 邱奇论题 的结论吧。所有计算或算法都可以由一台图灵机来执行。

强大的状态机,同感!


状态机就是一切,任何复杂算法,只要能用c描述的,就可以用状态机实现。
感觉软件和硬件的是一样的,原理-->描述-->实现, 软件实现的行为过程,硬件是载体。
不光是数字电路,模拟电路亦有异曲同工之妙。

另请教各位,用CustomExplorer,不知如何看Bus,请帮忙,谢谢!


看来兄台已到了另一境界了。是呀,电路的本质就是device,对基础器件理解才是真正的高人,我们的工作中就常因对Device上认识不足造成困惑,特别是做模拟电路时,复杂的寄生效应,有时是我们束手无策。我用模拟的方法做数字电路,不是为了糊口,而是工作需要,也是兴趣,但从中能领悟到Compiler的本质,虽然现在的Tool已十分强大,但开发Tool还是靠人的智慧。写此帖的目的是为了与朋友们分享对状态机的理解,希望有兴趣的朋友来讨论。



    我认为软件和硬件语言的实现过程并不相同。
    软件语言可以一步一步的来写,最后实现整个功能。而硬件描述语言需要心中先有电路,然后才是描述出来,这也是“描述”和“设计”的区别。

感谢小编的分享

学习了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top