集成电路设计与集成系统:数字集成电路与系统

  问题1:我是大一新生,电子科学与技术专业,刚刚学C语言,我能跟上进度吗?

  答:建议先学习我校集成电路设计与集成系统(电子科技大学)开设的另外一门MooC:数字逻辑设计与应用。在这门课程学习完成或至少学习一半以后,再来学习本课程。

  问题2:请问老师后面课程中,以哪家为例讲解,这三家FPGA中前两家遇到的见到的多。后面一家在现在实现中没有见到过。请问这前两家fpga有什么不同,从设计和应用上看。除应用设计工具不同外,还有什么不同。谢谢!

  答:其实不同公司的FPGA不同的方面很多,但本门课程不会纠结于这些细节。对于我们这门课程的学习只要是讲共性基础,不会涉及到不同。

  问题3:当从就业普遍待遇上看,感觉芯片被软件完全碾压啊!水木上跟知乎上到处都是劝EE转CS的言论~~~

  答:欢迎大家就这个问题继续展开讨论。

  中国芯片的黄金时代是否来临和芯片设计工程师的收入是不是比软件工程师高,工作性质有没有软件好是两个不同的问题。中国芯片的黄金时代是不是来了是和历史上做时间上的纵向比较,而收入有没有软件工程师高是在现在这个时间节点上做横向比较。其实在2000年互联网泡沫破灭之后、传统软件行业陷入低迷之时恰逢中国的芯片行业刚刚起步、大批初创公司出来大把烧钱的时候,芯片设计工程师的收入是完爆软件工程师的。而那时候中国的芯片行业只不过是刚刚起步,从行业状态来说远不如现在的发展状态良好。但在哪个时间节点上面横向比价收入的话就是比软件高。

  所以对于行业发展的评价和个人收入的评价以及个人前途的评价要分开看,不要混为一谈。

  问题4:这门课程怎样与单片机技术,自动控制技术相互配合学习,包括实验,理论,这些课程有和相似之处?

  答:请认真理解视频第一课“课程介绍”。

  问题5:老师,请问一下我现在要用Verilog在一个工程文件中实现四位二进制数的加减乘除四种运算,在顶层模块中用一个两位二进制数对不同的运算方式进行选择并调用相关的模块。if-else语句在always语句中,但是always中又不能进行子模块的调用。请问有什么方法可以实现这一功能?

  答:这位同学是典型的以软件编程思想来使用硬件描述语言。其实硬件描述语言并没有所谓的层次化、调用这些概念。层次只是我们人为的把一个复杂系统划分成若干个子系统抽象而来的。硬件描述语言是用文字的方式描述一个电路的行为和功能。因此我们从逻辑电路的角度上理解,整个数字系统都是由门和触发器这样基本的元件构成的。整个系统也可以用一个完全是基于门和触发器的二位平面电路图来表示。

  而我们划分模块的目的,只是由于这样的电路图会过于复杂,因此我们会把电路划分为若干抽象集成电路设计与集成系统的“模块”。所以顶层模块和底层模块之间不是什么“调用”关系,而是一个层次化的抽象关系。如果还想不清楚这一点,可以想想74LS系列中规模集成电路的框图符号表示和他们内部包含的门电路之间的关系。

  在想清楚了这些问题之后,就应该明白写硬件描述语言之前首先需要有一个逻辑电路设计的“蓝图”,这就是所谓的“架构设计”。这几者之间的关系在课程中已经交代得非常明确了,请学习的时候注意理解,切不可急功近利的直奔写代码而去。

  最后具体到这个同学的问题,一种最直观的实现方法就是搞4个运算单元,分别算出4个数加减乘除的结果。然后根据当前的输入来选择输出那种结果。这样就是实现了2个4位2进制数的四则运算。当然,这个方法显然不是最优的,同学们可以下来思考一下有没有更为合理的架构设计方案。

  更多精彩讨论请关注:

您可能还会对下面的文章感兴趣: