ASIC实验报告汇编_第1页
ASIC实验报告汇编_第2页
ASIC实验报告汇编_第3页
ASIC实验报告汇编_第4页
ASIC实验报告汇编_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《ASIC设计》课程实验实验报告学院:电子工程学院班级:姓名:学号:班内序号:组员:指导老师:2014 年5月实验一 多路选择器的设计一、实验目的:、掌握门级电路与行为级电路设计的区别;、掌握逻辑电路设计方法;、熟悉测试程序的编写;、注意代码规范性要求。二、实验内容:1、设计一个有两位选择信号的四选一多路选择器,可以根据控制信号从两个或多个输入源中选择一个予以输出。i0i1四选一多路选择器outi2i3s1 s22、用基本逻辑门来实现多路选择器,即门级语言进行描述。、用行为级语言进行描述,通过case语句重新设计仿真。、编写多路选择器的测试激励模块,并通过Synopsys工具进行仿真。三、实验过程及结果:、门级语言描述:测试文件:仿真波形:由仿真波形可以看出,当两位选择信号是s[1:0]=00=0时,选择第0路输入源予以输出,当s[1:0]=01=1时,选择第1路输入源予以输出,当s[1:0]=10=2时,选择第2路输入源予以输出,当s[1:0]=11=3时,选择第3路输入源予以输出,实现了四选一多路选择器的功能。、行为级语言描述:测试文件:仿真波形:仿真波形分析同门级语言描述仿真分析。四、实验思考题:1、门级电路与行为级电路设计的主要区别是什么?答:行为级是行为的描述,即对所需实现功能的语言描述;而门级是实例引用,很多行为级描述是不能逻辑综合的。、比较门级电路与行为级电路的仿真波形截图,说出其不同点。答:由于门级电路的截图没有输出中间状态s1n、s0n、y0、y1、y2和y3,因此门级电路与行为级电路在仿真波形图上看不出有什么区别。而事实上门级电路有中间状态而行为级电路则没有。、如果设计中改用开关级建模,你的思路是什么?答:若使用开关级建模,则利用开关导通与高阻来决定输出,采用4个cmos开关,输入为四位i0~i3,s0、s1为控制信号,两个wire型中间变量bar0、sbar1。用上述管脚即可完成4选一多路选择器的功能。五、实验源代码:、门级语言描述modulemux(i,s,out);input[3:0]i;input[1:0]s;outputout;wires1_n,s0_n,y0,y1,y2,y3;notn1(s1_n,s[1]);notn2(s0_n,s[0]);anda0(y0,i[0],s1_n,s0_n);anda1(y1,i[1],s1_n,s[0]);anda2(y2,i[2],s[1],s0_n);anda3(y3,i[3],s[1],s[0]);oro0(out,y0,y1,y2,y3);endmodule测试程序`timescale1ns/1psmodulemux_test();reg[3:0]i;reg[1:0]s;wireout;mux(.i(i),.s(s),.out(out));initialbegin$dumpvars(1,mux_test);i=4'b0101;s=2'b00;#10s=2'b01;#10s=2'b10;#10s=2'b11;#10s=2'b00;#100$finish;endendmodule2、行为级语言描述moduleaction(i,s,out);input[3:0]i;input[1:0]s;outputout;regout;always@(iors)begincase(s)default:out=1'b0;2'b00:out=i[0];2'b01:out=i[1];2'b10:out=i[2];2'b11:out=i[3];endcaseendendmodule测试程序`timescale1ns/1psmoduleaction_test();reg[3:0]i;reg[1:0]s;wireout;action(.i(i),.s(s),.out(out));initialbegin$dumpvars(1,action_test);i=4'b0101;s=2'b00;#10s=2'b10;#10s=2'b01;#10s=2'b11;#10s=2'b00;#100$finish;endendmodule实验三 交通信号灯控制器设计一、实验目的:、掌握时序逻辑电路设计,注意阻塞赋值与非阻塞赋值;、熟练运用状态机设计;、熟悉测试程序的编写;、注意代码规范性要求。二、实验内容:1、根据以下功能描述设计一个交通信号灯控制器:该交通信号灯控制器用于控制一条主干道与一条乡村公路的交叉口的交通,它必须具有下面的功能:(1)由于主干道上来往的车辆很多,因此控制主干道的交通信号具有最高优先级,在默认情况下主干道的绿灯点亮;(2)乡村公路间断性地有车经过,有车来时乡村公路的交通等必须变为绿灯,只需维持一段足够长的时间,以便让车通过;(3)只要乡村公路上不再有车辆,那么乡村公路上的绿灯马上变为黄灯,然后变为红灯,同时,主干道上的绿灯重新点亮;(4)一个传感器用于监视乡村公路上是否有车等待,它向控制器输入信号X,如果X=1,则表示有车等待,否则X=0;(5)各个状态转换时,具有一定的延迟,这些延迟必须能够控制。2、有限状态机设计如下图所示:其中各状态的含义为:S0:主干道绿灯,乡村公路红灯;S1:主干道黄灯,乡村公路红灯;S2:主干道红灯,乡村公路绿灯;S3:主干道红灯,乡村公路绿灯;S4:主干道红灯,乡村公路黄灯。3、编写相应验证程序,对编写的行为级模型进行验证,要求涵盖到状态机所有可能的转换。三、实验过程及结果:测试文件:仿真波形:仿真图分析:clk为时钟信号,reset 为复位信号,reset为低电平即reset=0时电路正常工作,x为传感器向控制器输入的信号,高电平即x=1时表示乡村公路上有车等待,低电平即x=0时表示乡村公路上没有车等待,l1为主路上交通信号灯的情况,00=0为绿灯,01=1为黄灯,11=3为红灯;l2为乡村公路上交通信号灯的情况,红绿黄灯情况同主路。当信号x=1时,主路交通灯由绿变为黄灯,经过一段延时后再变为红灯,在主干道为红灯后,经过延时乡村公路交通灯由红灯变为绿灯。此状态维持一段时间后,再检测x信号,若x信号仍为1,则主干道继续红灯,乡村公路继续绿灯,若x信号变为0,则乡村公路交通灯由绿灯变为黄灯,经过一段延时后再变为红灯,在乡村公路为红灯后,主路由红灯变为绿灯,由此实现了交通信号灯控制器的功能。四、实验思考题:、你是怎样理解阻塞赋值和非阻塞赋值的?答:组合逻辑的always模块中使用阻塞赋值,时序逻辑的always模块中使用非阻塞赋值。阻塞赋值对应的电路往往与触发沿没有关系,只与输入电平的变化有关系,阻塞赋值符号为“=”,非阻塞赋值对应的电路结构往往与触发沿有关系,只有在触发沿时才有可能发生赋值的情况,非阻塞赋值符号为“ <=”。阻塞赋值是在赋值语句执行完成后块才结束,非阻塞赋值是快结束后才完成赋值。、说明验证程序中涵盖的状态机转换有哪些。答:包含了状态机的5个状态x控制状态的转移。五、实验源代码:modulemux(clk,reset,state,x,l1,l2);inputclk,reset,x;output[2:0]state;output[1:0]l1,l2;wirex;reg[2:0]state,next_state;reg[1:0]l1,l2;always@(posedgeclkorposedgereset)if(reset)beginstate<=3'b000;l1<=2'b00;next_state<=0;l2<=2'b11;endelsebegin#10state<=next_state;case(state)3'b000:beginl1<=2'b00;l2<=2'b11;if(x)next_state<=3'b001;elsenext_state<=3'b000;end3'b001:beginl1<=2'b01;l2<=2'b11;next_state<=3'b010;end3'b010:beginl1<=2'b11;l2<=2'b11;next_state<=3'b011;end3'b011:beginl1<=2'b11;l2<=2'b00;if(x)next_state<=3'b011;elsenext_state<=3'b100;end3'b100:beginl1<=2'b11;l2<=2'b01;next_state<=3'b000;enddefault:beginnext_state<=3'b000;l1<=2'b00;l2<=2'b11;endendcaseendendmodule测试程序`timescale1ns/1psmodulemux_test();regclk,reset,x;wire[2:0]state;wire[1:0]l1,l2;mux(.clk(clk),.reset(reset),.x(x),.state(state),.l1(l1),.l2(l2));initialforever#10clk=~clk;initialbegin$dumpvars(2,mux_test);clk=0;x=0;reset=1;#40reset=0;#40x=1;#50x=0;#500x=1;#200x=0;#5000$finish;endendmodule实验五 NRZ/HDB3码制变换的功能与时序验证一、实验目的:1、掌握复杂时序逻辑电路设计;、掌握RTL级设计的基本要求;3、掌握验证程序的设计方法与技巧。二、实验内容:HDB3译码电路HDB3译码电路完成编码的反变换,关键之处是检出破坏点,取消“取代节”,即将“000V”或“B00V”还原成“0000”,其管腿框图如下:HDB+NRZHDB-CRX三、实验要求:1、工作速率为 50Kb/s~10Mb/s(符合CCITTG.703建议);、取时钟频率为2M,信号速率为2M;、用VerilogHDL进行电路RTL描述;、代码中应具有必要的注释;、模块、端口的设计与命名规则应符合要求;6、写出测试文件,测试文件中应具有验证结果是否正确的判断语句,电路仿真结果正确。四、设计思路首先熟悉编码规则,检查连“0”的情况,出现4个或4个以上连“0”时,将第4个“0”变为与前一个非“0”符号同极性的符号,用“V”标识(+V和-V);检查相邻V符号之间非“0”符号是否为偶数,如果为偶数,则将当前V符号前一个非“0”符号后的第一个“0”变为“B”,”B”的极性与前一个非”0“符号相反,并使“V”后的非“0”符号从“V”开始再交替变化。插“V”的实现:设置连“0”计数器,复位为0;对输入信号进行判断,如果为1则计数器复位,且输出“01”;如果为“0”,则对“0”进行计数,如果计数值不为4,则输出“00”;如果计数值为“4”,则计数器复位,同时输出为“11”。插“B”的实现:设置对“01”的计数器counter为0,设置对“11”的计数器counter2为0;对输入进行判断,如果为“01”,则counter加1,仍然输出“01”;如果输入为“00”,输出为“00”,计数器不变;如果输入为“11”,counter2加1,此时如果counter为奇数,则输出仍为“11”;如果counter为偶数,则将counter复位,且将此处前第4个数变成“10”。关键要设置四位的移位寄存器。由HDB3编码规则,“V”的极性是正负交替,而“1”和“B”的极性看成一体,为正负交替的,同时“V”的极性与前面的非“0”码一致。设置一个极性标志even=0;如果输入信号为“00”,输出仍为“00”;输入为“01”,或“10”,如果even=1,输出“01”;如果even=0,输出为“10”,然后将even翻转;如果输入为“11”,判断even,如果为1,则输出“10”,如果位0,输出“01”。(注意:输出后的“10”和“01”表示的不再是“1”、“V”、和“B”了,而是标识符号的正负极性。再将输出控制4选1的开关,就可以将“00”、“01”、“10”转化为0、+1和-1了。)译码原理:根据编码规则,破坏点V脉冲与前一个脉冲同极性。因此可从所接受的信码中找到V码,然后根据加取代节的原则,V码与前面的三位码必然是取代码,需要全部复原为四连0。只要找到V码,不管V码前是两个“0”码,一律把取代节清零,完成了扣V扣B功能,进而得到原二元信码序列。HDB3译码器包括双/单极性变换、V码检测、时钟提扣V扣B四部分组成。+V检测模块:为了方便起见,设从正整流电路输出的信号为+B,从负整流电路输出的信号为-B。+V码检测模块-B的控制下,对输入的+B进行检测。其原理是:当+B的上升沿到来时,对输入的+B脉冲进行计数,当计数值等于2时,输出一个脉冲作为+V脉冲,同时计数器清零,而且计数期间,一旦有-B信号为“1”电平时,立即对计数器清零,计数器重新从零开始计数。这是因为在两个+B脉冲之间,存在-B脉冲,说明第二个+B脉冲不是+V码,而只有在连续两个+B脉冲之间无-B脉冲,才能说明这两个+B脉冲在HDB3码中,是真正同极性的于是就可以判定第二个+B脉冲实际上是+V码,达到检测+V码的目的。-V检测模块:V码检测原理与+V码检测的类似。所不同的是,-V码检测电路在+B控制下,对来自-B信号进行计数和检测、判定,若检测到-V码,则输出到-V码信号。扣V扣B模块:扣V扣B模块有三个输入信号,即时钟信号、V码信号和来自正、负整流输出的和路信号。由于该和路信号可能包含有B脉冲和V脉冲,因此需要在扣V扣B模块中,去除V和B脉冲。本模块的建模方法是,用V码检测模块所检测出的V码信号,去控制一个移位寄存器,若未碰到V脉冲,则整流输出合成信号在时钟的节拍下,顺利通过移位寄存器,当碰到有 V脉冲时,该 V脉冲将使移位寄存器清零。考虑到四连 0,即V脉冲及其前面的三个码元应为 0码,所以,可设置四位的移位寄存器,当V码清零时,同时将移存器中的四位码全变为0。不管是否有B脉冲,在此模块中,一并清零,因而无需另设扣B电路。另外移位四位寄存器起到延时四位时钟周期的作用,以使所检测出的V脉冲与信号流中的V脉冲位置对齐,保证清零的准确性。五、实验过程及结果:仿真波形:六、实验思考题:1、什么是验证程序中的三要素?请结合自己编写的程序,加以阐述。答:验证程序中的三要素为电路、激励和显示。2、在验证过程中发现的问题。答:观察波形图发现译码结果所得的与输入相同,即译码成功。七、实验源代码:`timescale1ns/1nsmoduleyimama(BP,BN,clk,out3);inputBP,BN,clk;output[1:0]out3;wire[1:0]out0;reg[1:0]P,N,out1,out2;reg[1:0]counter1=0;reg[1:0]counter2=0;reg[1:0]d[3:0];reg[1:0]out0;reg[1:0]a;reg[1:0]b;initialbegind[0]=0;d[1]=0;d[2]=0;d[3]=0;out1=0;out2=0;endalways@(posedgeclk)beginif(BP==0)P<=2'b00;elseP<=2'b01;if(BN==0)N<=2'b00;elseN<=2'b01;if(P==2'b01)begincounter2<=2'b00;counter1=counter1+1;if(counter1==2'b10)beginout1<=2'b11;counter1<=2'b00;endelsebeginout1<=2'b01;endendelseout1<=2'b00;if(N==2'b01)begincounter1<=2'b00;counter2=counter2+1;if(counter2==2'b10)beginout2<=2'b11;counter2<=2'b00;endelsebeginout2<=2'b01;endendelse out2<=2'b00;d[3]<=d[2];d[2]<=d[1];d[1]<=d[0];d[0]<=out0;if(out0==2'b11)begind[0]<=00;d[1]<=00;d[2]<=00;d[3]<=00;endendassignout0=out1+out2;assignout3=d[3];endmodule`timescale1ns/1nsmodulebian(clk,data,BP,BN,out3);inputclk,data;outputBP,BN,out3;regBP,BN;reg[1:0]data_out;reg [1:0]counter=0;regcounter2=0;reg[1:0]d[3:0];reg[1:0]polar_out;regeven=0;wire[1:0]addb_out;initialbeginBP<=0;BN<=0;data_out<=0;d[0]<=0;d[1]<=0;d[2]<=0;d[3]<=0;polar_out<=0;endalways@(posedgeclk)beginif(data==1)begincounter<=0;data_out<=2'b01;endelsebegincounter<=counter+1;if(counter==2'b11)begindata_out<=2'b11;endelsebegindata_out<=2'b00;endendendalways@(posedgeclk)begind[3]<=d[2];d[2]<=d[1];d[1]<=d[0];d[0]<=data_out;endalways@(posedgeclk)beginif(d[0]==2'b01)begincounter2<=counter2+1;endelse counter2<=counter2;endassignaddb_out=(counter2==0)&&(d[0]==2'b11)?2'b10:d[3];always@(posedgeclk)if(addb_out==2'b11)beginif(even==1)beginpolar_out<=2'b01;endelsebeginpolar_out<=2'b10

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论