ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:259.08KB ,
资源ID:8670639      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8670639.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ASIC实验总结报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ASIC实验总结报告.docx

1、ASIC实验总结报告ASIC实验总结报告学院: 班级: 姓名: 学号: 序号: HDB3码制变换的功能与时序验证一、实验目的1、学习和掌握利用Verilog进行专用集成电路设计的流程与方法。2、熟悉编写较完整的测试模块进行接近真实的完整测试。3、熟悉仿真软件Modelsim的使用方法。二、实验要求用Verilog HDL进行HDB3解码电路描述,并写出测试文件,电路仿真结果正确。取时钟频率=2M,信号频率=2M。三、实验原理1、HDB3码由功率谱的特性,我们知道,NRZ 单极性不归零码不适合在信道上传输,传号交替反转码(AMI码)为一种双极性码,为了克服AMI 码连零可能较多的缺点,必须提出新

2、的编码方案,对NRZ码中的连零作适当的处理。高密度双极性码就是针对这一问题而提出来的一种编码方案。所谓高密度,是指传输码中“l”码的密度较高,连“0”码的个数最多为n 个,这种码叫HDBn码。在实用中,n 一般等于3,这就是HDB3 码。当连零数不大于3 时,HDB3 码与AMI 码的编码规则相同。当连零数超过3 时,以四个连零作为“一节”,分别用不同的取代节取代这四个连零。取代节有两种,分别为“000V”和“B00V”,这里的B 和V 均为传号脉冲。这样,传输码中的连零数就被控制在3 个以内。在取代节中,V 叫做破坏点,用它在码流中破坏极性交替这一原则,以便接收端识别。B 码是为了平衡正负极

3、性而加入的一个附加传号,它并不破坏极性交替的原则,因此又称它为非破坏点。HDB3 码的取代原则为:(1)出现四个连零用取代节取代;(2)当相邻破坏点V 中间有奇数个原始传号(不包括B 码)时,用000V”取代;(3)当相邻破坏点V 中间有偶数个原始传号时,用B00V取代;(4)用B00V取代时,B 码和V 码与它们前面一个原始传号(或V 码)极性相反;(5)用000V取代时,V 码与它前面的传号极性相同。可以证明,按照上述原则编出的HDBn 码,相邻破坏点V 的极性也是相反的,因此,破坏点的引入不会导致码流的正负不平衡。由于HDB3 码中的V 码破坏了极性交替原则,因此,在收端很容易找到它。在

4、译码时,将破坏点V 检出,包括它前面的三位码一律还原为“0”码就完成了HDB3 码的译码工作。2、HDB3解码电路HDB3 译码电路完成编码的反变换,关键之处是检出破坏点,取消“取代节”,即将“000V”或“B00V”还原成“0000”,其管腿框图如下:图2 HDB3译码电路管脚图四、HDB3译码电路模块设计根据编码规则,解码过程步骤为:首先将同步时钟信号、正整流信号、负整流信号输入解码模块中,然后从正整流信号和负整流信号中可以检测出两路包含V码的信号,将两路V码合成一路信号,再对其进行解码,最后将双相码变换成单相码。示意图如下图所示:图7 解码流程示意图1、V码检测V码检测同时进行正V码检测

5、和负V码检测,这两个检测模块的设计思想类似。当正整流信号上升沿到来时对输入的脉冲进行计数,当计数到1时,输出一个脉冲作为+V脉冲,同时计数器清零。在计数期间,一旦检测到负整流信号脉冲,计数器立即清零,重新从零计数。这是因为在两个正整流信号脉冲之间,如果存在负整流信号脉冲,说明第二个正整流信号脉冲不是+V码,只有在连续两个正整流信号脉冲之间没有负整流信号脉冲,才能说明这两个正整流信号脉冲在HDB3码中是同极性的,达到检测+V码的目的。-V码检测与+V码的检测类似,所不同的是-V码的检测是在正整流信号脉冲的控制下对负整流信号脉冲进行计数、检测和判定。图8是正V码检测的流程图:图8 正V码检测流程示

6、意图2、V码和B码解码过程检测到V码后,根据HDB3编码规则,只需将V码及之前3位码全部置零就可同时完成扣除V码和B码的操作。这里需要使用两组4位移位寄存器实现。扣除V码和B码之后,还需要将双相码变换成单相码,即当输入是“00”时输出“0”,输入是“01”或“10”时输出“1”,这样就完成了HDB3的解码。图9为双相码变单相码流程示意图:图9 双相码变单相码流程示意图五、实验结果交互仿真综合后的门级电路门级电路仿真七、实验总结通过本次试验,我对verilog有了更加深入的了解,对ASIC设计也有了直观的认识与体验。在实验中,由于HDB3码编码、译码规则的特殊性,本次测试程序并没有采用给随机数进

7、行测试的方式,而是通过给一串典型的固定激励,观察输出结果是否与预期一致。再通过反复多次测量以确保电路功能的准确性,本实验报告中只给出了一组典型测试数据的仿真波形与结果。通过本次实验,我深刻体会到测试程序设计的重要性,它涉及到的问题可能比电路本身还要复杂,需要在以后编写程序时继续深入学习。感谢老师助教们一学期以来的辛勤付出八、实验代码1、HDB3译码电路模块设计module jiema(hdb,hdb_,clk,reset,nrz); input hdb,hdb_,clk,reset; /define input ports output nrz; /define output ports re

8、g nrz; reg1:0 shift_reg3:0; /define shift register reg count; /flag to detect positive V code reg count_; /flag to detect negtive V code reg1:0 pole_change; /polar converting state reg1:0 flag; /record input signal always ( hdb or hdb_ ) /detect positive V code and negtive V code begin if(hdb) begin

9、 if(count) begin flag=2b00; count=0; /clear count flag end else begin flag=2b10; count=1; /set count flag end count_=0; end else if(hdb_) begin if(count_) begin flag=2b00; count_=0; /clear count_ flag end else begin flag=2b01; count_=1; /set count_ flag end count=0; end else flag=2b11; end always (p

10、osedge clk or posedge reset) begin if(reset) begin shift_reg3=0; shift_reg2=0; shift_reg1=0; shift_reg0=0; pole_change=0; end else begin pole_change=shift_reg3; /shift out data from shift register shift_reg3=shift_reg2; shift_reg2=shift_reg1; shift_reg1=shift_reg0; case(flag) 2b00:begin shift_reg3=0

11、; /clear B code and V code shift_reg0=0; end 2b01:shift_reg0=2b01; 2b10:shift_reg0=2b10; 2b11:shift_reg0=2b00; default:shift_reg0=2b00; endcase end end always (posedge clk or posedge reset) /ouput signal nrz begin if(reset) begin nrz=0; end else if(pole_change=2b10 | pole_change=2b01) nrz=1; else nr

12、z=0; end endmodule2、HDB3译码模块测试程序/ Name: WangYing/ZhengXueYing/YuHong/ Class: 2010211202/ Number: 10211059/ Create Date: 23:43:10 05/14/2012 / Module Name: HDB3_decoder/ Version: ModelSim SE 6.5c timescale 100ns/10nsmodule jiema_test; reg hdb,hdb_,clk,reset; /drive input ports wire nrz; /test output

13、port reg flag; /detect first high level integer i; reg35:0 exp_nrz; /output expect reg39:0 judgement; /judge the accuracy between the output and expect reg39:0 result; /show the simulation result Jiama u1(.hdb(hdb),.hdb_(hdb_),.clk(clk),.reset(reset),.nrz(nrz); /instantiation initial /initialize var

14、iables and input reset signal begin flag=0; i=0; exp_nrz=36b0000_0000_1101_1000_0100_0111_0001_1000_0111; clk=0; reset=0; #1 reset=1; #5 reset=0; end always #2.5 clk=clk; /clock signal initial /input test signal begin hdb=0; hdb_=0; #10 hdb=1;hdb_=0; #5 hdb=0;hdb_=1; #5 hdb=1;hdb_=0; #5 hdb=0;hdb_=0

15、; #15 hdb=1;hdb_=0; #5 hdb=0;hdb_=1; #5 hdb=1;hdb_=0; #5 hdb=0;hdb_=0; #15 hdb=0;hdb_=1; #5 hdb=1;hdb_=0; #5 hdb=0;hdb_=1; #5 hdb=0;hdb_=0; #15 hdb=1;hdb_=0; #5 hdb=0;hdb_=1; #5 hdb=0;hdb_=0; #10 hdb=0;hdb_=1; #5 hdb=1;hdb_=0; #5 hdb=0;hdb_=1; #5 hdb=0;hdb_=0; #5 hdb=1;hdb_=0; #5 hdb=0;hdb_=1; #5 hd

16、b=1;hdb_=0; #5 hdb=0;hdb_=0; #10 hdb=1;hdb_=0; while(1) begin #5 hdb=0;hdb_=1; #5 hdb=0;hdb_=0; #10 hdb=0;hdb_=1; #5 hdb=1;hdb_=0; #5 hdb=0;hdb_=0; #10 hdb=1;hdb_=0; end end always (posedge nrz) begin if(!flag) begin flag=1; result=right; end end always (posedge clk) /judge the result and show the i

17、nformation begin if(flag) begin if(i36) begin if(nrz=exp_nrzi) judgement=right; else begin judgement=wrong; result=wrong; end if(i!=0) $display( %s !,judgement); $write(nrz=%b; expect: nrz=%b;,nrz,exp_nrzi); i jiema.vgwrite_sdf design jiema jiema.sdfwrite_sdc jiema jiema.gate.sdc4、jiema.sdc 文件内容:set

18、 sdc_version 1.4set_units -capacitance 1000.0fFset_units -time 1000.0ps# Set the current designcurrent_design controlcreate_clock -name clk -add -period 20.0 -waveform 0.0 10.0 get_ports clkset_input_delay clock get_clocks clk add_delay 2.0 (hdb,hdb_,clk,reset,nrzset_output_delay clock get_clocks clk add_delay 2.0 get_ports yout

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1