基本逻辑门电路的设计

电子说

1.2w人已加入

描述

今天继续为大家解析联发科技数字IC设计岗的笔试题。

11、【简答题】请按要求画出电路图

1)只用两输入的NAND2和非门INV组成一个2to1 MUX。(3分)

2)只用两输入的NOR2和非门INV组成一个2to1 MUX。(4分)

解析:本题目主要考察了基本逻辑门电路的设计

做这种题目的思路就是先写出2to1 MUX的逻辑表达式,即:Y = CA + CB,然后再反推出基本门的逻辑表达式,最后在根据基本门的逻辑表示画出对应的电路图。

1)第一题NAND2的逻辑表达式为:Y = (AB)INV的逻辑表达式为:Y = A

Y = CA + CB     

= ((CA + CB))’ 公式:(A+B)= AB

= ((CA)(CB)) 

共需要三个NAND2和一个INV,电路图如下所示:

电路图

2)第二题NOR2的逻辑表达式为:Y = (A + B)INV的逻辑表达式为:Y = A

解法1

Y = CA + CB

= ((CA + CB))公式:(A+B)= AB’)

= ((CA)(CB))公式:(AB)= A+ B

= ((C+ A)(C + B))公式:(AB)= A+ B

= (C+ A)+ (C + B)

= (((C+ A)+ (C + B)))

解法2

Y = CA + CB

= ((CA))+ ((CB))公式:(AB)= A+ B

= (C+ A)+ (C+ B)

= (((C+ A)+ (C+ B)))

共需要三个NOR2和四个INV,电路图如下所示:

电路图

本题是通过基本门实现2to1 MUX,而上一期的第7题是分析用2to1 MUX设计的电路,其实同属于一种类型,关键就是要从逻辑表达式来推理。

12、【简答题】假定Python列表spam[] = [a, b, c, d],那么spam[:2]的值是多少?(5分)

解析:本题目主要考察了IC设计中常用脚本语言Python

可能不少同学会有这样的疑问,IC设计岗为什么还要考察对Python语言的掌握情况,又需要对Python语言掌握到什么程度呢?因为IC设计从前端到版图主要都是在Linux平台上开发,所涉及到的工具很多,有时候不仅仅会用到一两个工具这么简单,有可能会用到十几个甚至是几十个之多,很多工具在Linux下都直接通过命令打开运行,效率很高,而仅有极少数的工具才会通过打开GUI的方式来使用。在使用一个工具时如果每做一步操作都输入一个命令效率自然也不高,所以我们就可以把相关的命令放到一个文件中做成脚本,通过运行这个脚本来一次性做完所有相关的操作。其实在一些文件的处理、转化上也往往使用更高效的脚本来完成,所以我们就会用到各种语言来实现相关的脚本操作。

IC设计中常用的脚本有MakefileTCLPerlShellPython等。为什么会有这么多常用的脚本语言呢?因为每个公司在做相关脚本的时候可能并不是一个人做的,每个人的习惯以及每个工具所适用的脚本其实都不一样,大家在工作之前可以对此有一些基础,能够看懂,会修改其实就可以了,等到了真正进入到岗位工作的时候见到哪些语言的脚本再去针对性学习效果会更好。当然也不用担心有这么多语言需要学习,其实真正用到的这些语言的功能并不复杂,而且不少语言学习起来也比较容易上手,所以在真正用到的时候学习起来还是很快的。

再回到本题目中来,关于Python相关的语法这里不再做过多解释,直接给出代码解析,大家有兴趣可以安装相关的环境验证一下结果。

相关的验证实例如下所示:

电路图

所以本题的答案是:spam[-1] = ['d']spam[:2] = ['a'.'b'.'c']

13、【简答题】有下面四个人,他们名字分别是Li FeiLiu QiangZhang MingTian HuaK,写一个Perl程序,做到输入他们的姓就能告诉这个人的名。(5分)

解析:本题目主要考察了IC设计中常用脚本语言Perl

和上一题目一样,也是考察脚本的使用,只不过是Perl语言。答案结果不唯一,这里仅提供一种解析方法供大家参考。Perl代码如下所示:

//-------------------------

01 #利用哈希表来实现

02 %hash = ();

03 $hash{Li}  = "Fei";

04 $hash{Liu}   = "Qiang";

05 $hash{Zhang} = "Ming";

06 $hash{Tian}  = "Hua";

07

08 my $a;

09 while(1){

10 print "Enter Xing:";

11 $a = ;

12 chomp $a;

13 if($a ~~ "Exit"){

14 die "Exit System ";

15 }

16 else{

17 print $hash{$a};

18 print " ";

19 }

20 }

//------------------------

以上代码实现的功能是:输入正确的姓,输出对应的名;输入不正确的,输出为空;输入 Exit,退出。
 

 审核编辑:汤梓红
 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分