第一篇:2010北邮考研网研院 机试题
2010北邮考研网研院 机试题
(2010-04-19 16:38:15)
转载 标签:
北邮 网研 机试 杂谈
第一题:查找 输入数组长度 n 输入数组 a[1...n] 输入查找个数m 输入查找数字b[1...m]
输出 YES or NO 查找有则YES 否则NO
如(括号内容为注释)输入: 5(数组长度)1 5 2 4 3(数组)3(查找个数)2 5 6(查找具体数字)输出: YES YES NO 第二题:查找第K小数
查找一个数组的第K小的数,注意同样大小算一样大 如 2 1 3 4 5 2 第三小数为3
如(括号内容为注释)输入: 6(数组长度n)2 1 3 5 2 2(数组)3(K 即为第三小数)输出: 3
第三题:打牌
牌只有1到9,手里拿着已经排好序的牌a,对方出牌b,用程序判断手中牌是否能够压过对方出牌 规则:出牌牌型有5种 [1]一张 如4 则5...9可压过
[2]两张 如44 则55,66,77,...,99可压过 [3]三张 如444 规则如[2] [4]四张 如4444 规则如[2] [5]五张 牌型只有12345 23456 34567 45678 56789五个,后面的比前面的均大
压过输出YES 否则NO
如(括号内容为注释)输入:
12233445566677(手中牌)33(出牌)输出: YES
第四题:树 查找
简单说就是一棵树,输出某一深度的所有节点,有则输出这些节点,无则输出EMPTY,具体描述得借助图形比较好,懒得写了,基本就是这个样子的。
第二篇:2010年北邮光研院《光纤通信》专业笔试题
2010年北京邮电大学信息光子学与光通信研究院
《光纤通信》专业笔试题
一、填空题(共26分,每空2分)
1、光纤传输特性:___,___,___。
2、单模光纤三种色散:___, ___, ___;其中___色散导致单模光纤出现传输极限。(原话实在忘了,课本也没在手里,意思表达不清楚,凑合看吧,看过书的人应该明白的,嘿嘿)
3、光纤通信系统的三大性能指标:___,___,___。
4、给出L、Pi、Po=0,计算α损耗系数___.5、(还有一个题想不起来了,总之填空应该拿满分的)
二、选择题(共24分,每题4分)
1、影响DWDM传输容量的因素有:(五个选项,不定项选择,具体选项忘了~)
2、EDFA能放大那些波长的光:(选项略)
3、光检测器,给出截止波长hv>Eg,问能检测出那些波长的光。
4、单模光纤当波长大于lanmdaC(你懂的,这个希腊字母实在是找不到在哪)时截止,问那些波长的光能通过?
5、适合DwDm传输的标准?(答案应该是G.655)
6、光接收机的性能指标。
三、大题(计算+简述,共50分)
计算题:
1、(5分)回波损耗,知Po,反射Pi,求α?
2、(10分)画出WDM系统并阐述工作原理(感觉这不是计算题,下题同)
3、(10分)EDfA的三种泵浦结构并作简单说明。
简述题:
1、(10分)光纤传输特性对于光脉冲的影响。
2、(10分)光与物质的三种反应过程并写出与之相对应的半导体器件。(写到这忍不住抱怨句:这也忒简单了吧,考填空正好~)
3、(5分)WDM中监控信道的作用及对波长的选择。
09题型有填空,选择,计算,问答。填空有四五道,选择有四道题,诸如单模光纤中的三种色散类型,光纤通信系统的性能指标,损耗系数的计算,光发送机的性能指标等等。
计算加问答共6道题,如下:
1.DWDM系统中要求总功率不得高于17dBm,该系统共32个子信道,每个子信道功率相同,则每个子信道的功率不得高于多少?(记得lg2=0.3010的话,该题答案应该是1.95dBm)
2.EDFA的3种泵浦结构写出一种
3.FTTH的实现方案
4.偏振膜色散的形成原因及其对通信系统性能的影响
5.抖动性能的定义及其对系统的影响
6.WDM系统中监控信道的作用及其对波长选择的要求。
第三篇:2013北邮计算机网研院上机题
A 最值问题
Accept:210 Submit:633 Time Limit:1000MS Memory Limit:65536KB Description 给出N个数,求出这N个数中最大值和次大值。注意这里的次大值必须严格小于最大值。输入保证N个数中至少存在两个不同的数。
InputFormat 第一行为测试数据的组数T(T≤20)。请注意,任意两组测试数据之间是相互独立的。每组数据包括两行:
第一行为一个整数N(1≤N≤1000)。
第二行为N个正整数,每个整数均不大于106。
OutputFormat 每组数据输出两个数,即N个数的最大值和次大值,中间用空格隔开。
SampleInput 2 5 1 2 3 4 5 4 2 2 2 3 SampleOutput 5 4 3 2
B 统计时间间隔
Accept:130 Submit:1132 Time Limit:1000MS Memory Limit:65536KB Description 给出两个时间(24小时制),求第一个时间至少要经过多久才能到达第二个时间。给出的时间一定满足的形式,其中x和y分别代表小时和分钟。$0x24,0y 60。
InputFormat 第一行为数据组数T(1≤T≤50000)。
每组数据包括两行,分别代表两个时间。
OutputFormat 每组数据输出一行,表示最少经过的分钟数。SampleInput 2 7:00 7:00 7:00 8:00 SampleOutput 0 60
C 字符串转换
Accept:78 Submit:471 Time Limit:1000MS Memory Limit:65536KB Description 我们将仅由若干个同一小写字母构成的字符串称之为简单串,例如“aaaa”是一个简单串,而“abcd”则不是简单串。现在给你一个仅由小写字母组成的字符串,你需要用最小的花费,将其转换成一个简单串。花费的计算规则如下:将a到z这26个小写字母从左到右排成一排,则每个字母都有左右两个邻居,我们认为a的左邻居是z,z的右邻居是a。一个字母只能转换成其相邻的字母,转换的花费为1。一个字母可以进行多次转换,例如将a转换成d,可以进行如下的步骤: a->b->c->d,花费为3。字符串的转换花费为所有字母转换花费之和。例如将字符串“abbbz”转换成简单串的最小花费为3,转换后的结果为“bbbbb”。
InputFormat 第一行一个整数T(T≤100),表示测试数据的组数。每组测试数据只有一行,为仅含小写字母的字符串,字符串长度不超过1000。
OutputFormat 对于每一组数据,输出一个整数,表示将字符串转换成简单串的最小花费。
SampleInput 2 abbba abbac SampleOutput 2 3
D 文件系统
Accept:9 Submit:79 Time Limit:1000MS Memory Limit:65536KB Description 现在很多操作系统的文件系统都是基于树形结构设计的。即一个目录下可以有若干个目录和文件,而每个目录和文件都可以通过一条从根目录出发的唯一路径来唯一确定。我们希望你实现对这样的一个文件系统的简单管理。为了简化问题,我们做出如下假设:
假设文件系统初始时只有一个根目录root。
假设所有出现的文件和目录的名字都是唯一的。即,不会有两个相同名字的文件出现,不会有两个相同名字的目录出现,也不会有一个文件和一个目录名字相同。
文件名字和目录名字都是长度在1到20之间的字符串(包括1和20),且只由英文大写字母、英文小写字母、数字组成。大小写字母之间不等效。你需要实现如下操作:
CREATEFILE FILENAME DIRNAME 这个操作的含义是:在DIRNAME的目录下创建一个名字为FILENAME的文件。我们保证当出现这个操作时,DIRNAME是一个已经存在的目录,而FILENAME这个名字是首次出现。
CREATEDIR DIRNAME1 DIRNAME2 这个操作的含义是:在DIRNAME2的目录下创建一个名字为DIRNAME1的目录。我们保证当出现这个操作时,DIRNAME2是一个已经存在的目录,而DIRNAME1这个名字是首次出现。
LISTFILE DIRNAME 这个操作的含义是:按照创建的先后顺序打印出DIRNAME目录下的所有文件名字。我们保证当出现这个操作时,DIRNAME是一个已经存在的目录.LISTDIR DIRNAME 这个操作的含义是:按照创建的先后顺序打印出DIRNAME目录下的所有目录名字。我们保证当出现这个操作时,DIRNAME是一个已经存在的目录 1.2.3.1.2.3.4.InputFormat 第一行有一个整数T,表示一共有T组数据需要你处理。请注意各组数据之间是相互独立的。每当处理新的一组数据时,你都应当假设此时只有一个名字为root的根目录存在。T的大小不超过20。
对于每组数据,第一行有一个整数N(0 OutputFormat 对于每个LISTFILE操作和LISTDIR操作,如果找到了X个文件(或目录),你需要输出X行,按照创建时间从早到晚的顺序,每一行打印一个文件(或目录)的名字。如果找到了0个文件(或目录),就不要输出任何东西。请注意不要输出多余的空格和换行符。 SampleInput 2 8 CREATEFILE desktop root CREATEDIR DESKTOP root LISTFILE root LISTDIR DESKTOP CREATEFILE scr20130412 DESKTOP CREATEFILE scr20130411 DESKTOP CREATEFILE scr20130413 DESKTOP LISTFILE DESKTOP 5 LISTFILE root CREATEDIR webapp root CREATEDIR myweb webapp CREATEDIR MyWeb webapp LISTDIR webapp Sample Output desktop scr20130412 scr20130411 scr20130413 myweb MyWeb 一、阅读理解(共1道小题,共25.0分) William Henry Harrison, the ninth President of the United States, was born in a small town.As a boy, he was quiet and shy.In fact, he was so quiet that everyone thought he was stupid.Because of that, the people of the town liked to play jokes on him.“Here, William,” one of them would say.“Here is a nickel(五美分硬币), and here is a dime(十美分硬币).Which one do you want?” He always chose the nickel, and then they all laughed at him.Finally, his mother took him aside and said to him, “I know that you are a smart boy, but sometimes you let people think you are not so smart.Why do you always choose the nickels instead of the dime? Don't you know that a dime is worth much more than a nickel?” “Certainly, I know it,” William answered slowly.“But if I choose the dime, they won't play the trick on me any more.Then I won’t get any more nickels.” William Henry Harrison was born_____. in a big city on a farm in the countryside in a small town People thought he was stupid because ______. he did poorly at school he was so quiet he always asked foolish questions he was afraid of others Whenever people played tricks on him, he was asked to_____. laugh at himself make faces choose between a nickel and a dime tell right from wrong His mother took him aside and asked why _____. he always chose the nickel instead of the dime he didn’t know that a dime was worth more than a nickel people played the same trick on him he failed to let people know how smart he was We can infer from the story that William Henry Harrison was ______. 试题分值:25.0 得分:[5, 5, 5, 5, 5] 提示:[1]D.细节题。本题问“William Henry Harrison出生于______。”中心词是“was born”,答案在第一段的第一句,该句告诉我们William出生于一个小镇,所以答案是D。 [2]B.细节题。本题问“人们认为他非常笨,这是因为_______。”中心词是“thought he was stupid”,答案在第一段的最后一句,该句大意是“当他还是个孩子的时候,他不喜欢说话而且很害羞。实际上,他是如此的安静以至于别人都认为他很笨”。据此可知答案是B。[3]C.细节题。本题问“每当人们想和他开玩笑的时候,人们就让他_______。”中心词是“played tricks on him”,答案在第二段和第三段,只不过第二段中出现的是“play jokes on him”,这两个词组意思相近。第二段大意是“就因为这个,所以人们喜欢开他的玩笑。”第三段的大意是“有人会说:‘过来,William。这里有一个5美分硬币和一个10美分的硬币。你想选择哪一个?’”根据这两段,我们可以知道答案是C。[4]A.细节题。本题问“他妈妈将他带到一旁问他为什么_______。”答案在第五段,该段大意是“最后,他妈妈将他带到一旁对他说道:‘我知道你是个聪明的孩子,但是有些时候你让别人觉得你不是那么聪明。为什么你总是选择5美分的硬币而不选择10美分的呢?难道你不知道10美分的硬币比5美分的值钱吗?’”据此可知答案是A。 [5]D.推断题。本题问“从故事中我们可以推测出William Henry Harrison是______。”答案在最后一段,该段大意是“William慢慢地回答道:‘我当然知道。但是,如果我选择了10美分的硬币,他们就不会再和我开玩笑了。这样的话,我就再也得不到5美分的硬币了。’”据此可知答案是D(聪明的)。 二、单项选择题(共15道小题,共75.0分) Many educators fear that an increase in the use of state exams will ___________a corresponding rise in cheating. lead at result foolish naughty silent clever lead to consequent 知识第一部分 点: 学生答[C;] 案: 标准答 C; 案: 试题分得分: [5] 5.0 值: 该题选C,题目大意是“很多教育学家担心,更多地利用州级考试将会导致作弊的相应增加。” 提示: lead to:导致 Smoking can lead to lung cancer.抽烟可能导致肺癌。 What if my auto-repair man devised questions ___________an intelligence test? with for to at 标准答 B; 案: 试题分得分: [5] 5.0 值: 该题选B,题目大意是“假定让我的汽车修理师来为智力测验设计题目将会怎么样?” what if:如果„„将会怎么样 1.What if it is true? 如果这是真的又该如提示: 何呢? 2.What if he doesn´t agree? 如果他不同意该怎么办呢? 3.What if he comes back now? 如果他现在回来怎么办? In the test I scored 160 ___________a normal of 100. at with against 知识第一部分 点: 学生答[B;] 案: in 知识第一部分 点: 学生答[C;] 案: 标准答 C; 案: 试题分得分: [5] 5.0 值: 该题选C,题目大意是“在标准得分为100的情况下,我得了160分。” score:及物动词 vt.1.(体育比赛中)得(分),记(分);使得分 提示: He only scored nine hundred marks.他只得九百分。 2.(考试等中)得(分)Mary scored the highest marks on the exam.玛丽考试中得了个最高分。 Praise is particularly appreciated by those doing ___________ jobs. routine rural racial rude 标准答 A; 案: 试题分得分: [5] 5.0 值: 该题选A,题目大意是“那些从事例行工作的人们特别懂得赞扬的意义。” routine:形容词 a.日常的,例行的,常规的 提示: 1.a routine medical examination 常规体格检查 2.Routine office jobs have no relish at all for me.我对坐办公室那种刻板的工作毫无兴趣。 I can live for two months ___________a good compliment. by with on 知识第一部分 点: 学生答[A;] 案: at 知识第二部分 点: 学生答[C;] 案: 标准答 C; 案: 试题分得分: [5] 5.0 值: 该题选C,题目大意是“一句赞美的话我就可以活上两个月。” live on:靠吃---生活,靠---维持生活 提示: 1.live on wild plants靠吃野菜生活 2.A panda lives on bamboo leaves.熊猫以吃竹叶为生。 Students in the last century read stories that taught ________ lessons. moral more mortal morale 标准答 A; 案: 试题分得分: [5] 5.0 值: 该题选A,题目大意是“上个世纪的学生读的都是些传授道德标准的故事。” moral: 形容词 a.1.道德(上)的 提示: He refused the request on moral grounds.基于道德上的考虑,他拒绝了这个请求。2.讲道德的,品性端正的 My grandmother was a very moral woman;she´d never allow cursing.我祖母是很讲究道德的人;她从不允许诅咒。 His former secretary ________ him with sexual harassment. blamed criticized 知识第二部分 点: 学生答[A;] 案: accused charged 知识第二部分 点: 学生答[D;] 案: 标准答 D; 案: 试题分得分: [5] 5.0 值: 该题选D,题目大意是“他从前的女秘书指控他性骚扰。” charge:及物动词 vt.控告,指控 提示: 1.He was charged with stealing.他被控犯有偷窃行为。 2.The police charged him with car theft.警方以偷车罪指控他。 Six ________ ten people in Beijing have seen the movie Titanic. out out off out of out to 标准答 C; 案: 试题分得分: [5] 5.0 值: 该题选C,题目大意是“在北京,十个人中有六个人已经看了电影《泰坦尼克号》” 提示: out of:from among其中,„„之中 One person out of five the world is Chinese.世界五分之一的人是中国人。 All but Alice and I ________ going to the theatre this evening. 知are be am is 知识第二部分 点: 学生答[C;] 案: 识第二部分 标准答 A; 案: 试题分得分: [5] 5.0 值: 该题选A,题目大意是“今晚除了爱丽丝和我,提示: 大家都去看戏了。” Everything _________ except salaries. went went up went to went from 点: 学生答[A;] 案: 标准答 B; 案: 试题分得分: [5] 5.0 值: 该题选B,题目大意是“除了工资之外,所有都在涨价。” go up:rise;increase上升;增加 提示: 1.I see cigarettes are going up again.我发现香烟又涨价了。 2.Crime rate tends to go up if the economy collapses.经济崩溃的时候犯罪率常上升。 The boy ___________ at the dinner party last Sunday and was sick. overweight overload overate over and ate 知识第二部分 点: 学生答[B;] 案: 知识第二部分 点: 学生答[C;] 案: 标准答 C; 案: 试题分得分: [5] 5.0 值: 提示: 该题选C,题目大意是“男孩在上周日的晚宴上吃得过饱,于是病倒了。” overeat:暴食;吃得过量;吃撑 1.He is advised not to overeat.有人劝他不要吃得太多。 2.And skipping meals tends to make you overeat later.不吃饭会让你有暴食的倾向。3.Generally, you shouldn´t overeat yourself before sleeping.一般说来睡觉之前你不能吃得过饱。 We all thought _________ a pity that you were unable to watch the game. it which that what 标准答 A; 案: 试题分得分: [5] 5.0 值: 该题选A,题目大意是“你没能观看这场比赛,我们认为很遗憾。” 英语中会出现用it 作形式宾语,放在动词后面,而将真正的宾语,宾语从句或作宾语的不定式置于句末的情况。又如: 1.People find it more and more difficult to get a job nowadays.人们发现当下找工作越来提示: 越难了。(不定式作宾语) 2.We all thought it a pity that you were unable to attend the party.我们为你不能参加这次聚会,而深感遗憾。(从句作宾语) 3.I regard it as important that everyone of us should be punctual.我们每个人都必须严格守时,我认为这一点很重要。(从句作宾语) _______ exchanges are an important part of cultural exchanges between two countries. Previous Uneasy Academic 知识第二部分 点: 学生答[A;] 案: Divine 知识第二部分 点: 学生答[C;] 案: 标准答 C; 案: 试题分得分: [5] 5.0 值: 该题选C,题目大意是“学术交流是这两个国家文化交流的重要部分。” academic:学院的;学术的;理论的 1.With my strong academic background, I am 提示: competent.依我良好的学术背景,我能胜任。 2.During the past four years I have had a good deal of academic experience in communications technology.四年来,我掌握了丰富的通信技术上的理论知识。 If you give up music, you’ll waste your _______. comment talent diploma intent 标准答 B; 案: 试题分得分: [5] 5.0 值: 该题选B,题目大意是“如果你放弃音乐,你就是浪费了你的天赋。” 提示: talent:名词 n.天才,天资 He had a talent for music.他有音乐天才。 Shops should not _______ defective goods on customers. 知foster forge forsake foist 知识第二部分 点: 学生答[B;] 案: 识第二部分 点: 学生答[D;] 案: 标准答 D; 案: 试题分得分: [5] 5.0 值: 该题选D,题目大意是“商店不应该把劣质商品推销给顾客。” foist „ to:骗售 提示: The shopkeeper foisted a box of broken biscuits on the old lady.店主把一箱子碎饼干骗售给了那老妇人。 电子工程学院 ASIC专业实验报告 班级: 姓名: 学号: 班内序号: 第一部分 语言级仿真 LAB 1:简单的组合逻辑设计一、二、实验目的 实验原理 掌握基本组合逻辑电路的实现方法。 本实验中描述的是一个可综合的二选一开关,它的功能是当sel = 0时,给出out = a,否则给出结果out = b。在Verilog HDL中,描述组合逻辑时常使用assign结构。equal=(a==b)?1:0是一种在组合逻辑实现分支判断时常用的格式。parameter定义的size参数决定位宽。测试模块用于检测模块设计的是否正确,它给出模块的输入信号,观察模块的内部信号和输出信号。 三、源代码 mux.v module scale_mux(out,sel,b,a);parameter size=1;output[size-1:0] out;input[size-1:0]b,a;input sel;assign out =(!sel)?a: (sel)?b: {size{1'bx}};endmodule mux_test.v `define width 8 `timescale 1 ns/1 ns module mux_test; reg[`width:1]a,b; wire[`width:1]out; reg sel; scale_mux#(`width)m1(.out(out),.sel(sel),.b(b),.a(a)); initial begin $monitor($stime,“sel=%b a=%b b=%b out=%b”,sel,a,b,out); $dumpvars(2,mux_test); sel=0;b={`width{1'b0}};a={`width{1'b1}}; #5sel=0;b={`width{1'b1}};a={`width{1'b0}}; #5sel=1;b={`width{1'b0}};a={`width{1'b1}}; #5sel=1;b={`width{1'b1}};a={`width{1'b0}}; #5 $finish; end endmodule 四、仿真结果与波形 LAB 2:简单时序逻辑电路的设计一、二、实验目的 实验原理 掌握基本时序逻辑电路的实现。 在Verilog HDL中,相对于组合逻辑电路,时序逻辑电路也有规定的表述方式。在可综合的Verilog HDL模型中,我们常使用always块和@(posedge clk)或@(negedge clk)的结构来表述时序逻辑。 在always块中,被赋值的信号都必须定义为reg型,这是由时序逻辑电路的特点所决定的对于reg型数据,如果未对它进行赋值,仿真工具会认为它是不定态。为了正确地观察到仿真结果,在可综合的模块中我们通常定义一个复位信号rst-,当它为低电平时对电路中的寄存器进行复位。 三、源代码 counter.v `timescale 1 ns/100 ps module counter(cnt,clk,data,rst_,load);output[4:0]cnt;input [4:0]data;input clk;input rst_;input load;reg [4:0]cnt; always@(posedge clk or negedge rst_) if(!rst_) #1.2 cnt<=0; else if(load) cnt<=#3 data; else cnt<=#4 cnt + 1; endmodule counter_test.v `timescale 1 ns/1 ns module counter_test; wire[4:0]cnt; reg [4:0]data; reg rst_; reg load; reg clk; counter c1 (.cnt(cnt),.clk(clk),.data(data),.rst_(rst_),.load(load)); initial begin clk=0; forever begin #10 clk=1'b1; #10 clk=1'b0; end end initial begin $timeformat(-9,1,“ns”,9); $monitor(“time=%t,data=%h,clk=%b,rst_=%b,load=%b,cnt=%b”,$stime,data,clk,rst_,load,cnt); $dumpvars(2,counter_test); end task expect;input [4:0]expects; if(cnt!==expects)begin $display(“At time %t cnt is %b and should be %b”,$time,cnt,expects); $display(“TEST FAILED”); $finish; end endtask initial begin @(negedge clk) {rst_,load,data}=7'b0_X_XXXXX;@(negedge clk)expect(5'h00); {rst_,load,data}=7'b1_1_11101;@(negedge clk)expect(5'h1D); {rst_,load,data}=7'b1_0_11101; repeat(5)@(negedge clk); expect(5'h02); {rst_,load,data}=7'b1_1_11111;@(negedge clk)expect(5'h1F); {rst_,load,data}=7'b0_X_XXXXX;@(negedge clk)expect(5'h00); $display(“TEST PASSED”); $finish; end endmodule 四、仿真结果与波形 五、思考题 该电路中,rst-是同步还是异步清零端? 在counter.v的always块中reset没有等时钟,而是直接清零。所以是异步清零端。 LAB 3:简单时序逻辑电路的设计一、二、实验目的 实验原理 使用预定义的库元件来设计八位寄存器。 八位寄存器中,每一位寄存器由一个二选一MUX和一个触发器dffr组成,当load=1,装载数据;当load=0,寄存器保持。对于处理重复的电路,可用数组条用的方式,使电路描述清晰、简洁。 三、源代码 clock.v `timescale 1 ns /1 ns module clock(clk);reg clk;output clk;initial begin clk=0;forever begin #10 clk=1'b1;#10 clk=1'b0;end end endmodule mux及dffr模块调用代码 mux mux7(.out(n1[7]),.sel(load),.b(data[7]),.a(out[7]));dffr dffr7(.q(out[7]),.d(n1[7]),.clk(clk),.rst_(rst_));mux mux6(.out(n1[6]),.sel(load),.b(data[6]),.a(out[6]));dffr dffr6(.q(out[6]),.d(n1[6]),.clk(clk),.rst_(rst_));mux mux5(.out(n1[5]),.sel(load),.b(data[5]),.a(out[5]));dffr dffr5(.q(out[5]),.d(n1[5]),.clk(clk),.rst_(rst_));mux mux4(.out(n1[4]),.sel(load),.b(data[4]),.a(out[4]));dffr dffr4(.q(out[4]),.d(n1[4]),.clk(clk),.rst_(rst_)); mux mux3(.out(n1[3]),.sel(load),.b(data[3]),.a(out[3]));dffr dffr3(.q(out[3]),.d(n1[3]),.clk(clk),.rst_(rst_));mux mux2(.out(n1[2]),.sel(load),.b(data[2]),.a(out[2]));dffr dffr2(.q(out[2]),.d(n1[2]),.clk(clk),.rst_(rst_));mux mux1(.out(n1[1]),.sel(load),.b(data[1]),.a(out[1]));dffr dffr1(.q(out[1]),.d(n1[1]),.clk(clk),.rst_(rst_));mux mux0(.out(n1[0]),.sel(load),.b(data[0]),.a(out[0]));dffr dffr0(.q(out[0]),.d(n1[0]),.clk(clk),.rst_(rst_)); 例化寄存器 register r1(.data(data),.out(out),.load(load),.clk(clk),.rst_(rst_));例化时钟 clock c1(.clk(clk)); 添加检测信号 initial begin $timeformat(-9,1,“ns”,9);$monitor(“time=%t,clk=%b,data=%h,load=%b,out=%h”, $stime,clk,data,load,out);$dumpvars(2,register_test);end 四、仿真结果与波形 LAB 4:用always块实现较复杂的组合逻辑电路 一、实验目的 掌握用always实现组合逻辑电路的方法; 了解assign与always两种组合逻辑电路实现方法之间的区别。 二、实验原理 仅使用assign结构来实现组合逻辑电路,在设计中会发现很多地方显得冗长且效率低下。适当地使用always来设计组合逻辑,会更具实效。 本实验描述的是一个简单的ALU指令译码电路的设计示例。它通过对指令的判断,对输入数据执行相应的操作,包括加、减、或和传数据,并且无论是指令作用的数据还是指令本身发生变化,结果都要做出及时的反应。 示例中使用了电平敏感的always块,电平敏感的触发条件是指在@后括号内电平列表的任何一个电平发生变化就能触发always块的动作,并且运用了case结构来进行分支判断。 在always中适当运用default(在case结构中)和else(子if…else结构中),通常可以综合为纯组合逻辑,尽管被赋值的变量一定要定义为reg型。如果不使用default或else对缺省项进行说明,易产生意想不到的锁存器。 三、源代码 电路描述 always@(opcode or data or accum)begin if(accum==8'b00000000)#1.2 zero=1;else #1.2 zero=0; case(opcode)PASS0: #3.5 out =accum;PASS1: #3.5 out =accum;ADD: #3.5 out = data + accum;AND: #3.5 out =data&accum;XOR: #3.5 out =data^accum;PASSD: #3.5 out=data;PASS6:#3.5 out=accum;PASS7:#3.5 out=accum;default:#3.5 out=8'bx;endcase end 四、仿真结果与波形 LAB 5:存储器电路的设计一、二、实验目的 实验原理 设计和测试存储器电路。 本实验中,设计一个模块名为mem的存储器仿真模型,该存储器具有双线数据总线及异步处理功能。由于数据是双向的,所以要注意,对memory的读写在时序上要错开。 三、源代码 自行添加的代码 assign data=(read)?memory[addr]:8'hZ; always @(posedge write)begin memory[addr]<=data[7:0];end 四、仿真结果与波形 LAB 6:设计时序逻辑时采用阻塞赋值与非阻塞赋值的区别 一、实验目的 明确掌握阻塞赋值与非阻塞赋值的概念和区别; 了解阻塞赋值的使用情况。 二、实验原理 在always块中,阻塞赋值可以理解为赋值语句是顺序执行的,而非阻塞赋值可以理解为并发执行的。实际时序逻辑设计中,一般情况下非阻塞赋值语句被更多的使用,有时为了在同一周期实现相互关联的操作,也使用阻塞赋值语句。 三、源代码 blocking.v `timescale 1 ns/ 100 ps module blocking(clk,a,b,c); output[3:0]b,c; input [3:0]a; input clk; reg [3:0]b,c; always@(posedge clk) begin b =a; c =b; $display(“Blocking: a=%d,b=%d,c=%d.”,a,b,c); end endmodule non_blocking.v `timescale 1 ns/ 100 ps module non_blocking(clk,a,b,c); output[3:0] b,c;input[3:0] a;input clk;reg [3:0]b,c;always @(posedge clk)begin b<=a;c<=b;$display(“Non_blocking:a=%d,b=%d,c=%d”,a,b,c);end endmodule compareTop.v `timescale 1 ns/ 100 ps module compareTop;wire [3:0] b1,c1,b2,c2;reg[3:0]a;reg clk;initial begin clk=0;forever #50 clk=~clk;end initial $dumpvars(2,compareTop);initial begin a=4'h3;$display(“_______________________________”);# 100 a =4'h7;$display(“_______________________________”);# 100 a =4'hf;$display(“_______________________________”);# 100 a =4'ha;$display(“_______________________________”);# 100 a =4'h2;$display(“_______________________________”);# 100 $display(“_______________________________”);$finish;end non_blocking nonblocking(clk,a,b2,c2);blocking blocking(clk,a,b1,c1);endmodule 四、仿真结果与波形 LAB 7:利用有限状态机进行复杂时序逻辑的设计一、二、实验目的 实验原理 掌握利用有限状态机(FSM)实现复杂时序逻辑的方法。 控制器是CPU的控制核心,用于产生一系列的控制信号,启动或停止某些部件。CPU何时进行读指令,何时进行RAM和I/O端口的读写操作等,都由控制器来控制。 三、源代码 补充代码 nexstate<=state+1'h01;case(state)1:begin sel=1;rd=0;ld_ir=0;inc_pc=0;halt=0;ld_pc=0;data_e=0;ld_ac=0;wr=0;end 2:begin sel=1;rd=1;ld_ir=0;inc_pc=0;halt=0;ld_pc=0;data_e=0;ld_ac=0;wr=0;end 3:begin sel=1;rd=1;ld_ir=1;inc_pc=0;halt=0;ld_pc=0;data_e=0;ld_ac=0;wr=0;end 4:begin sel=1;rd=1;ld_ir=1;inc_pc=0;halt=0;ld_pc=0;data_e=0;ld_ac=0;wr=0;end 5:begin sel=0;rd=0;ld_ir=0;inc_pc=1;ld_pc=0;data_e=0;ld_ac=0;wr=0;if(opcode==`HLT)halt=1;end 6:begin sel=0;rd=alu_op;ld_ir=0;inc_pc=0;halt=0;ld_pc=0;data_e=0;ld_ac=0;wr=0;end 7:begin sel=0;rd=alu_op;ld_ir=0;halt=0;data_e=!alu_op;ld_ac=0;wr=0;if(opcode==`SKZ)inc_pc<=zero;if(opcode==`JMP)ld_pc=1;end 0:begin sel=0;rd=alu_op;ld_ir=0;halt=0;data_e=!alu_op;ld_ac=alu_op;inc_pc=(opcode==`SKZ)&zero||(opcode==`JMP);if(opcode==`JMP)ld_pc=1;if(opcode==`STO)wr=1;end //default:begin sel=1'bZ;rd=1'bZ;ld_ir=1'bZ;inc_pc=1'bZ;halt=1'bZ;ld_pc=1'bZ;data_e=1'bZ;ld_ac=1'bZ;wr=1'bZ;end endcase end control_test.v /***************************** * TEST BENCH FOR CONTROLLER * *****************************/ `timescale 1 ns / 1 ns module control_test; reg [8:0] response [0:127]; reg [3:0] stimulus [0:15]; reg [2:0] opcode; reg clk; reg rst_; reg zero; integer i,j; reg[(3*8):1] mnemonic; // Instantiate controller control c1(rd , wr , ld_ir , ld_ac , ld_pc , inc_pc , halt , data_e , sel , opcode , zero , clk , rst_); // Define clock initial begin clk = 1; forever begin #10 clk = 0; #10 clk = 1; end end // Generate mnemonic for debugging purposes always @(opcode) begin case(opcode) 3'h0 : mnemonic = “HLT”; 3'h1 : mnemonic = “SKZ”; 3'h2 : mnemonic = “ADD”; 3'h3 : mnemonic = “AND”; 3'h4 : mnemonic = “XOR”; 3'h5 : mnemonic = “LDA”; 3'h6 : mnemonic = “STO”; 3'h7 : mnemonic = “JMP”; default : mnemonic = “???”; endcase end // Monitor signals initial begin $timeformat(-9, 1, “ ns”, 9); $display(“ time rd wr ld_ir ld_ac ld_pc inc_pc halt data_e sel opcode zero state”); $display(“--------------------------------------------------------------”);// $shm_open(“waves.shm”);// $shm_probe(“A”);// $shm_probe(c1.state); end // Apply stimulus initial begin $readmemb(“stimulus.pat”, stimulus); rst_=1; @(negedge clk)rst_ = 0; @(negedge clk)rst_ = 1; for(i=0;i<=15;i=i+1) @(posedge ld_ir) @(negedge clk) { opcode, zero } = stimulus[i]; end // Check response initial begin $readmemb(“response.pat”, response); @(posedge rst_) for(j=0;j<=127;j=j+1) @(negedge clk) begin $display(“%t %b %b %b %b %b %b %b %b %b %b %b”,$time,rd,wr,ld_ir,ld_ac,ld_pc,inc_pc,halt,data_e,sel,opcode,zero,c1.state); if({rd,wr,ld_ir,ld_ac,ld_pc,inc_pc,halt,data_e,sel}!== response[j]) begin : blk reg [8:0] r; r = response[j]; $display("ERRORTEST1 PASSED! 111_00000 // 18 JMP BEGIN //run test again @1A 00000000 // 1A DATA_1: //constant 00(hex) 11111111 // 1B DATA_2: //constant FF(hex) 10101010 // 1C TEMP: //variableTEST2 PASSED! 111_00000 // 11 JMP BEGIN //run test again @1A 00000001 // 1A DATA_1: //constant 1(hex) 10101010 // 1B DATA_2: //constant AA(hex) 11111111 // 1C DATA_3: //constant FF(hex) 00000000 // 1D TEMP: CPUtest3.dat //opcode_operand // addr assembly code //--------------//------------------------- 111_00011 // 00 JMP LOOP //jump to the address of LOOP @03 101_11011 // 03 LOOP: LDA FN2 //load value in FN2 into accum 110_11100 // 04 STO TEMP //store accumulator in TEMP 010_11010 // 05 ADD FN1 //add value in FN1 to accumulator 110_11011 // 06 STO FN2 //store result in FN2 101_11100 // 07 LDA TEMP //load TEMP into the accumulator 110_11010 // 08 STO FN1 //store accumulator in FN1 100_11101 // 09 XOR LIMIT //compare accumulator to LIMIT 001_00000 // 0A SKZ //if accum = 0, skip to DONE 111_00011 // 0B JMP LOOP //jump to address of LOOP 000_00000 // 0C DONE: HLT //end of program 101_11111 // 0D AGAIN: LDA ONE 110_11010 // 0E STO FN1 101_11110 // 0F LDA ZERO 110_11011 // 10 STO FN2 111_00011 // 11 JMP LOOP //jump to address of LOOP @1A 00000001 // 1A FN1: //variablestores 2nd Fib.No.00000000 // 1C TEMP: //temporary variable 10010000 // 1D LIMIT: //constant 144stores 1st Fib.No.00000101 // 1B data2: //5 variablemax value 00000110 // 1E LIMIT: // 6 constant 1 11111111 // 1F AND1: //FF and 四、仿真结果与波形 第二部分 电路综合一、二、三、四、实验目的 实验内容 源代码 门级电路仿真结果与波形 掌握逻辑综合的概念和流程,熟悉采用Design Compiler进行逻辑综合的基本方法。采用SYNOPSYS公司的综合工具Design Compiler对实验7的control.v做综合。与实验指导书中相同。 五、思考题 1.control_pad.v文件是verilog语言及的描述还是结构化的描述? 是结构化的描述。 2.control_pad.sdf文件中,对触发器的延迟包括哪些信息? 包括对逻辑单元和管脚的上升/下降时延的最大值、最小值和典型值。 第三部分 版图设计一、二、三、四、实验目的 实验内容 源代码 仿真结果与波形 掌握版图设计的基本概念和流程,熟悉采用Sysnopsys ICC工具进行版图设计的方法。对电路综合输出的门级网表control_pad.v进行布局布线。与实验指导书中相同。布局规划后结果 未产生core ring和mesh前 产生core ring和mesh后 电源线和电影PAD连接后 filler PAD填充后 布局后结果 时钟树综合后结果 布线后结果 寄生参数的导出和后仿 五、思考题 1.简述ICC在design setup阶段的主要工作。 创建设计库,读取网表文件并创建设计单元,提供并检查时间约束,检查时钟。在对之前的数据与信息进行读取与检查后保存设计单元。2.为什么要填充filler pad? filler pad把分散的pad单元连接起来,把pad I/O区域供电连成一个整体。使它们得到持续供电并提高ESD保护能力。3.derive_pg_connection的作用是什么? 描述有关电源连接的信息。4.简述floorplan的主要任务。 对芯片大小、输入输出单元、宏模块进行规划,对电源网络进行设计。5.简述place阶段的主要任务。 对电路中的延时进行估计与分析,模拟时钟树的影响,按照时序要求,对标准化单元进行布局。 6.简述CTS的主要步骤。 设置时钟树公共选项;综合时钟树;重新连接扫描链;使能传播时钟;Post-CTS布局优化;优化时钟偏移;优化时序。 实验总结 经过数周的ASIC专业实验,我对芯片设计流程、Verilog HDL语言、Linux基本指令和Vi文本编辑器有了基本的了解。虽然之前对芯片设计、VHDL一无所知,但通过实验初步熟悉了ASIC的体系结构和VHDL的基本语法,对电路中时钟、寄生参数、元件布局带来的影响也有了了解。我在实验中也遇到了许多问题,但我在老师、助教、同学的帮助下解决了这些问题,也有了更多收获。通过这次ASIC专业实验,我加深了对本专业的认识。我会继续努力成为合格的电子人。第四篇:北邮网院英语答案
第五篇:北邮电子院专业实验报告