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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

SOC设计实验报告精选文档.docx

1、SOC设计实验报告精选文档 TTMS system office room 【TTMS16H-TTMS2A-TTMS8Q8-TTMSHHJ8】SOC设计实验报告精选文档西北工业大学SOC设计实践实验报告学 院: 软件与微电子学院 学号:姓名:专 业:时 间:实验地点:实验一、编写一个自动售货机Verilog HDL模型一、题目描述编写一个自动售货机Verilog HDL模型,(1)售货机出售15分的饮料。(2)投币器只接受5分和1角硬币。(3)必须提供适当数目的零钱,投币器不找钱。二、实验内容1)定义状态,并画出状态转换图,解释设计思路;答:我在设计本题所要求的售货机时使用了4个状态,分别为s

2、tart(00),st1(01),st2(10),st3(11)其中在第三个状态是输出out为1,其他的三个状态输出为0。状态转换图如下所示: 其中状态机在跳到st3时,由st3直接跳的start状态这使得out只在投币后的一个时钟周期处于高电平而不会长期处于高电平的状态,这与现实的只输出一瓶饮料的结果不相符。2)使用Verilog语言完成设计;解:自动售货机的verilog代码如下所示:module AUTOSEL(five,ten,clk,rst,out);input ten,five;input clk;input rst;output out;wire out;reg 1:0state

3、;parameter st0=2b00, st1=2b01, st2=2b10, st3=2b11;always(posedge clk or negedge rst)begin if(rst=0) begin state=st0; end else begin case(state) st0: begin if(five=1) begin state=st1; end else begin if(ten=1) begin state=st2; end else begin state=st0; end end end st1: begin if(five=1) begin state=st2

4、; end else begin if(ten=1) begin state=st3; end else begin state=st1; end end end st2: begin if(five=1) begin state=st3; end else begin if(ten=1) begin state=st3; end else begin state=st2; end end end st3: begin state=st0; end default: begin state=st0; end endcase end endassign out=(state=st3)?1:0;e

5、ndmodule3)编写testbench,并使用Synopsys VCS进行仿真;答:testbench测试代码如下:module testbench; reg clk,rst_n; reg five_cents,ten_cents; wire soda_out; always #1 clk=clk; initial begin clk=0; five_cents=0; ten_cents=0; rst_n=1; #10 rst_n=0; #10 rst_n=1; /1三个五分的 #10 five_cents=1; #2 five_cents=0; #10 five_cents=1; #2

6、five_cents=0; #10 five_cents=1; #2 five_cents=0; /2一个五分,一个十分 #20 five_cents=1; #2 five_cents=0; #10 ten_cents=1; #2 ten_cents=0; /3两个十分 #20 ten_cents=1; #2 ten_cents=0; #10 ten_cents=1; #2 ten_cents=0; /4一个十分,一个五分 #20 ten_cents=1; #2 ten_cents=0; #10 five_cents=1; #2 five_cents=0; /5两个五分,一个十分 #20 fi

7、ve_cents=1; #2 five_cents=0; #10 five_cents=1; #2 five_cents=0; #10 ten_cents=1; #2 ten_cents=0; #10 $stop; end AUTOSEL AUTOSEL(five_cents,ten_cents,clk,rst_n,soda_out);Endmodule测试波形图如下所示:Autosel-vcs仿真波形 最下边一行代表的是投5分,倒数第二行代表的是复位信号,第三行是时钟信号,第二行是投10分,由图可知,在投3个5分,1个5分、1个10分,两个10分,1个10分、1个5分,2个5分、1个10分都

8、可使输出信号为1,满足题意要求。4)使用Synopsys DC进行综合。答:autosel.con约束文件如下:#Constrain# #reset_designcreate_clock -period 490.2 get_ports clk#创建频率为2.04MHz的时钟信号set_clock_latency -source -max 10 get_clocks clk set_clock_latency -max 10 get_clocks clkset_clock_uncertainty -setup 20 get_clocks clkset_clock_transition 10 ge

9、t_clocks clkset_input_delay -max 60 -clock clk get_ports tenset_input_delay -max 60 -clock clk get_ports fiveset_driving_cell -lib_cell bufbd7 all_inputs set_output_delay -max 80 -clock clk get_ports outset_load load_of cb13fs120_tsmc_max/bufbd7/I get_ports outset_max_area 10000DC综合脚本文件dc.tcl如下:#run

10、 script#printvar target_library printvar link_library check_library check_tlu_plus_filesread_verilog ./rtl/autosel.v#读文件Link#连接到目标库check_design#检测设计是否由问题source ./scripts/autosel.con#加上约束文件check_timing#检测时序compile_ultra -scan -retime#对文件进行编译redirect -tee -file rc.rpt report_constraint -allredirect -t

11、ee -file rt.rpt report_timingredirect -tee -file ra.rpt report_area#产生各种约束的报告write -f ddc -hier -out autosel.ddc#生成最后的.ddc文件产生的rc.rpt文件:Information: Updating design information. (UID-85)*Report : constraint -all_violatorsDesign : AUTOSELVersion: G-2012.06-SP4Date : Tue May 20 20:15:05 2014*This desi

12、gn has no violated constraints.1产生的rt.rpt文件:*Report : timing -path full -delay max -max_paths 1Design : AUTOSELVersion: G-2012.06-SP4Date : Tue May 20 20:15:05 2014* * Some/all delay information is back-annotated.Operating Conditions: cb13fs120_tsmc_max Library: cb13fs120_tsmc_maxWire Load Model Mod

13、e: Inactive. Startpoint: state_reg0 (rising edge-triggered flip-flop clocked by clk) Endpoint: out (output port clocked by clk) Path Group: clk Path Type: max Point Incr Path - clock clk (rise edge) 0.00 0.00 clock network delay (ideal) 20.00 20.00 state_reg0/CP (sdcrb1) 0.00 20.00 r state_reg0/Q (s

14、dcrb1) 1.23 21.23 r U15/Z (an02d1) 0.14 * 21.37 r out (out) 0.00 * 21.37 r data arrival time 21.37 clock clk (rise edge) 490.20 490.20 clock network delay (ideal) 20.00 510.20 clock uncertainty -20.00 490.20 output external delay -80.00 410.20 data required time 410.20 - data required time 410.20 da

15、ta arrival time -21.37 - slack (MET) 388.83 左侧一列是每一项计划所用的时间,右侧一列是到目前所用的总时间,而且我们可以看出来实际的到达时间远远小于要求的时间,因此时序方面是满足设计要求的。1产生的ra.rpt文件:*Report : areaDesign : AUTOSELVersion: G-2012.06-SP4Date : Tue May 20 20:15:05 2014*Library(s) Used: cb13fs120_tsmc_max (File: /cad/share/ref/libs/mw_lib/sc/LM/sc_max.db)N

16、umber of ports: 5Number of nets: 15Number of cells: 8Number of combinational cells: 6Number of sequential cells: 2Number of macros: 0Number of buf/inv: 0Number of references: 6Combinational area: 10.000000Buf/Inv area: 0.000000Noncombinational area: 15.750000Net Interconnect area: undefined (Wire lo

17、ad has zero net area)Total cell area: 25.750000Total area: undefined1组合逻辑电路所用的面积为10um2,非组合逻辑所用面积为15.75um,因此总的面积为25.75um2。最终的综合电路图:Autosel dc 综合电路三、实验报告要求1)设计思路,状态定义,转台转换图。2)使用Verilog HDL完成设计。3)编写testbench。4)VCS完成仿真,对仿真结果进行分析。5)编写Synopsys DC综合脚本文件dc.tcl以及约束文件autosel.con。6)使用Synopsys DC进行综合,给出综合后的报告,包

18、括rc.rpt,rt.rpt,ra.rpt,并做必要说明。7)综合后的电路图。四、分析与讨论 在做本次试验时,由于刚开始使用的投币信号的脉冲较宽,使得输出信号在时输出信号有效的最后一个信号为高时,状态发生了连续的跳转,最后的输出信号也发生了迅速的变化,考虑时序之后,使用单周期脉冲的输入信号使得输出信号在下一个周期有效,而在过一个周期由于此时输入信号无效,使得状态不再改变而使得输出信号也只有在一个周期内为高电平,从而满足了要求。 此外,在刚开始设计时由于对状态机的编写规范不清楚,使用了ten和five作为always语句的触发条件,虽然可以仿真出波形,但是由于不符合dc综合的规范,使得在dc时出

19、现了“将CLK信号作为输入信号”的错误,状态机的下周期逻辑只能使用clk作为触发条件。五、教师评语签名:日期:成绩 实验二、设计PCM30基群帧同步电路一、题目描述设计PCM30基群帧同步电路,该PCM30机群系统结构如下:输入输出信号说明:DATA :输入串行码流,速率为2.04Mb/S;CLK :输入时钟,频率为2.04MHz;/FLOSS :输出失步信号,低电平有效。电路功能说明:1输入码流DATA,速率为2.04Mb/S;每帧256bit,其中前8bit为帧同步码;偶数帧的帧同步码为,奇数帧的帧同步码为110XXXXX(X为任意值)。2系统初始状态为失步态,失步信号FLOSS输出低电平

20、,电路在输入码流里逐比特搜寻同步码,当搜寻到第一个偶帧同步码后,电路转为逐帧搜寻,当连续三帧均正确地搜寻到同步码后,系统状态转为同步态,失步信号输出高电平;否则电路重新进入逐比特搜寻状态。3系统处于同步态后,当连续四帧检出的同步码均错误,则系统转为失步态,失电路时序说明:1)输入信号DATA与CLK的时序关系2)同步过程时序与DATA的帧结构二、实验内容1)定义状态,并画出状态转换图,解释设计思路答:为了实现pcm30的功能,我的分析思路如下:首先,还没有进入帧同步状态时,是位寻址状态依次为bit0,bit1,bit2,bit3,bit4,bit5,bit6,bit7;当满足了一次偶校验之后,

21、要进行空248位的处理,这个状态可以用bitblank来表示;再次进行一次奇校验用oddcheck0,oddcheck1,oddcheck2三个状态来处理;奇校验完成进入oddblank来表示空缺253位;在此进行一次偶校验用evencheck0,evencheck1,evencheck2,evencheck3,evencheck4,evencheck5,evencheck6,evencheck7来表示,通过后使floss=1;如果通过了偶校验则进入evenblank状态来使pcm30空缺248位,此时进入帧校验的奇校验;帧校验的奇校验使用三个状态来完成,分别为:oddhold0,oddhol

22、d1,oddhold2来校验奇帧的1、2、3位;奇校验可能产生不同的结果,例如在0,1,2位产生不符合和符合一共4种情况,这样一来就不能只空固定的位数了,因为假如在0位就不符合的话,在0位就跳出了,这样需要跳过255位,与之类似,1位不符合要跳254位,而3为符合于不符合都是要跳过253位的,因此应该跳的位数随着不同的情况来变化,需要有跳255,254,253位状态oddblank0,oddblank1和oddblank2的分别对应于三个奇校验的状态oddhold0,oddhold1,oddhold2;oddblank0,oddblank1和oddblank2结束后的状态应该跳到偶校验的状态中

23、,使用8个状态来完成,分别为:evenhold0,evenhold1,evenhold2,evenhold3,evenhold4,evenhold5,evenhold6,evenhold7;前7个状态不满足或者第8个状态结束分别跳转到evenblank0,evenblank1,evenblank2,evenblank3,evenblank4,evenblank5,evenblank6,evenblank7,结束后跳转到oddhold处。状态跳转图如下所示:2)使用Verilog语言完成设计;答:pcm30实验代码如下:module pcm30(clk,rst,data,FLOSSN); inp

24、ut clk,data,rst; output FLOSSN; wire net_data,net_clk,net_FLOSSN,net_rst; pc3d01 clk_iopad (.PAD(clk), .CIN(net_clk); pc3d01 data_iopad (.PAD(data), .CIN(net_data); pc3d01 rst_iopad (.PAD(rst), .CIN(net_rst); pc3o05 FLOSSN_iopad (.I(net_FLOSSN), .PAD(FLOSSN); pcm I_pcm (.clk(net_clk),.rst(net_rst),.

25、data(net_data), .floss1(net_FLOSSN);endmodulemodule pcm(clk,rst,data,floss1); input clk,rst,data; output floss1; wire floss1; reg floss; reg 7:0state; reg 7:0btblkct; reg 7:0oddblkct; reg 7:0oddblkct0; reg 7:0oddblkct1; reg 7:0oddblkct2; reg 7:0evenblkct; reg 7:0evenblkct0; reg 7:0evenblkct1; reg 7:

26、0evenblkct2; reg 7:0evenblkct3; reg 7:0evenblkct4; reg 7:0evenblkct5; reg 7:0evenblkct6; reg 7:0evenblkct7; reg 1:0flsct; parameter bit0=8b00000000,/0 bit1=8b00000001,/1 bit2=8b00000010,/2 bit3=8b00000011,/3 bit4=8b00000100,/4 bit5=8b00000101,/5 bit6=8b00000110,/6 bit7=8b00000111,/7 bitblank=8b00001

27、000,/8 oddcheck0=8b00001001,/9 oddcheck1=8b00001010,/10 oddcheck2=8b00001011,/11 oddblank=8b00001100,/12 evencheck0=8b00010000,/16 evencheck1=8b00010001,/17 evencheck2=8b00010010,/18 evencheck3=8b00010011,/19 evencheck4=8b00010100,/20 evencheck5=8b00010101,/21 evencheck6=8b00010110,/22 evencheck7=8b

28、00010111,/23 evenblank=8b00011000,/24 oddhold0=8b00100000,/32 oddhold1=8b00100001,/33 oddhold2=8b00100010,/34 oddblank0=8b00100011,/35 oddblank1=8b00100100,/36 oddblank2=8b00100101,/37 evenhold0=8b00101000,/40 evenhold1=8b00101001, evenhold2=8b00101010, evenhold3=8b00101011, evenhold4=8b00101100, evenhold5=8b00101101, evenhold6=8b00101110, evenhold7=8b00101111, evenblank0=8b00110000, evenblank1=8b00110001, evenblank2=8b00110010,

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2