SOC设计实验报告_计算机-嵌入式开发.pdf

上传人:c****2 文档编号:93990298 上传时间:2023-07-21 格式:PDF 页数:100 大小:2.43MB
返回 下载 相关 举报
SOC设计实验报告_计算机-嵌入式开发.pdf_第1页
第1页 / 共100页
SOC设计实验报告_计算机-嵌入式开发.pdf_第2页
第2页 / 共100页
点击查看更多>>
资源描述

《SOC设计实验报告_计算机-嵌入式开发.pdf》由会员分享,可在线阅读,更多相关《SOC设计实验报告_计算机-嵌入式开发.pdf(100页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、 -.可修编.西北工业大学 SOC 设计实践实验报告 学院:软件与微电子学院 学 号:姓 名:-.可修编.专业:时 间:实验地点:自动售货机模型一题目描述编写一个自动售货机模型售货机出售分的饮料投币器只接受分和角硬币必须提供适当数目的零钱投币器不找钱二实验容定义状态并画出状态转换图解释设计思路答我在设计本题所要求的售货机时使用了个的状态这使得只在投币后可修编的一个时钟周期处于高电平而不会长期处于高电平的状态这与现实的只输出一瓶饮料的结果不相符使用语言完成设计解自动售货机的代码如下所示可修编可修编可修编可修编编写并使用进行仿真答测如下所示仿真波形最下边一行代表的是投分倒数第二行代表的是复位信号第

2、三行是时钟信号第二行是投分由图可知在投个分个分个分两个分个分个分个分个分都可使输出信号为满足题意要求使用进行综合答约束文件如下可修编创建 -.可修编.实验一、编写一个自动售货机 Verilog HDL模型 一、题目描述 编写一个自动售货机 Verilog HDL模型,(1)售货机出售 15 分的饮料。(2)投币器只接受 5 分和 1 角硬币。(3)必须提供适当数目的零钱,投币器不找钱。二、实验容 1)定义状态,并画出状态转换图,解释设计思路;答:我在设计本题所要求的售货机时使用了4 个状态,分别为 start(00),st1(01),st2(10),st3(11)其中在第三个状态是输出 out

3、 为 1,其他的三个状态输出为0。状态转换图如下所示:其中状态机在跳到 st3 时,由 st3 直接跳的 start 状态这使得 out 只在投币后 start St3 St1 St2 Five=1 ten=1 Five=1 ten=1 ten=1 Five=1 自动售货机模型一题目描述编写一个自动售货机模型售货机出售分的饮料投币器只接受分和角硬币必须提供适当数目的零钱投币器不找钱二实验容定义状态并画出状态转换图解释设计思路答我在设计本题所要求的售货机时使用了个的状态这使得只在投币后可修编的一个时钟周期处于高电平而不会长期处于高电平的状态这与现实的只输出一瓶饮料的结果不相符使用语言完成设计解自

4、动售货机的代码如下所示可修编可修编可修编可修编编写并使用进行仿真答测如下所示仿真波形最下边一行代表的是投分倒数第二行代表的是复位信号第三行是时钟信号第二行是投分由图可知在投个分个分个分两个分个分个分个分个分都可使输出信号为满足题意要求使用进行综合答约束文件如下可修编创建 -.可修编.的一个时钟周期处于高电平而不会长期处于高电平的状态,这与现实的只输出一瓶饮料的结果不相符。2)使用 Verilog语言完成设计;解:自动售货机的 verilog 代码如下所示:module AUTOSEL(five,ten,clk,rst,out);input ten,five;input clk;input rs

5、t;output out;wire out;reg 1:0state;parameter st0=2b00,st1=2b01,st2=2b10,st3=2b11;always(posedge clk or negedge rst)begin if(rst=0)begin state=st0;end else 自动售货机模型一题目描述编写一个自动售货机模型售货机出售分的饮料投币器只接受分和角硬币必须提供适当数目的零钱投币器不找钱二实验容定义状态并画出状态转换图解释设计思路答我在设计本题所要求的售货机时使用了个的状态这使得只在投币后可修编的一个时钟周期处于高电平而不会长期处于高电平的状态这与现实的

6、只输出一瓶饮料的结果不相符使用语言完成设计解自动售货机的代码如下所示可修编可修编可修编可修编编写并使用进行仿真答测如下所示仿真波形最下边一行代表的是投分倒数第二行代表的是复位信号第三行是时钟信号第二行是投分由图可知在投个分个分个分两个分个分个分个分个分都可使输出信号为满足题意要求使用进行综合答约束文件如下可修编创建 -.可修编.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:b

7、egin 自动售货机模型一题目描述编写一个自动售货机模型售货机出售分的饮料投币器只接受分和角硬币必须提供适当数目的零钱投币器不找钱二实验容定义状态并画出状态转换图解释设计思路答我在设计本题所要求的售货机时使用了个的状态这使得只在投币后可修编的一个时钟周期处于高电平而不会长期处于高电平的状态这与现实的只输出一瓶饮料的结果不相符使用语言完成设计解自动售货机的代码如下所示可修编可修编可修编可修编编写并使用进行仿真答测如下所示仿真波形最下边一行代表的是投分倒数第二行代表的是复位信号第三行是时钟信号第二行是投分由图可知在投个分个分个分两个分个分个分个分个分都可使输出信号为满足题意要求使用进行综合答约束文

8、件如下可修编创建 -.可修编.if(five=1)begin state=st2;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 自动售货机模型一题目描述编写一个自动售货机模型售货机出售分的饮料投币器只接受分和角硬币必须提供适当数目的零钱投币器不找钱二实验容定义状态并画出状态转换图解释设计思路答我在设计本题所要求的售货机时使用了个的状态这使得只在投币后可修编的一个时钟周期处于高电平而不会长期处于高电平的状态这与

9、现实的只输出一瓶饮料的结果不相符使用语言完成设计解自动售货机的代码如下所示可修编可修编可修编可修编编写并使用进行仿真答测如下所示仿真波形最下边一行代表的是投分倒数第二行代表的是复位信号第三行是时钟信号第二行是投分由图可知在投个分个分个分两个分个分个分个分个分都可使输出信号为满足题意要求使用进行综合答约束文件如下可修编创建 -.可修编.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

10、 end 自动售货机模型一题目描述编写一个自动售货机模型售货机出售分的饮料投币器只接受分和角硬币必须提供适当数目的零钱投币器不找钱二实验容定义状态并画出状态转换图解释设计思路答我在设计本题所要求的售货机时使用了个的状态这使得只在投币后可修编的一个时钟周期处于高电平而不会长期处于高电平的状态这与现实的只输出一瓶饮料的结果不相符使用语言完成设计解自动售货机的代码如下所示可修编可修编可修编可修编编写并使用进行仿真答测如下所示仿真波形最下边一行代表的是投分倒数第二行代表的是复位信号第三行是时钟信号第二行是投分由图可知在投个分个分个分两个分个分个分个分个分都可使输出信号为满足题意要求使用进行综合答约束文

11、件如下可修编创建 -.可修编.end assign out=(state=st3)?1:0;endmodule 3)编写 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

12、;#2 five_cents=0;自动售货机模型一题目描述编写一个自动售货机模型售货机出售分的饮料投币器只接受分和角硬币必须提供适当数目的零钱投币器不找钱二实验容定义状态并画出状态转换图解释设计思路答我在设计本题所要求的售货机时使用了个的状态这使得只在投币后可修编的一个时钟周期处于高电平而不会长期处于高电平的状态这与现实的只输出一瓶饮料的结果不相符使用语言完成设计解自动售货机的代码如下所示可修编可修编可修编可修编编写并使用进行仿真答测如下所示仿真波形最下边一行代表的是投分倒数第二行代表的是复位信号第三行是时钟信号第二行是投分由图可知在投个分个分个分两个分个分个分个分个分都可使输出信号为满足题意

13、要求使用进行综合答约束文件如下可修编创建 -.可修编.#10 five_cents=1;#2 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

14、 five_cents=0;/5 两个五分,一个十分#20 five_cents=1;#2 five_cents=0;自动售货机模型一题目描述编写一个自动售货机模型售货机出售分的饮料投币器只接受分和角硬币必须提供适当数目的零钱投币器不找钱二实验容定义状态并画出状态转换图解释设计思路答我在设计本题所要求的售货机时使用了个的状态这使得只在投币后可修编的一个时钟周期处于高电平而不会长期处于高电平的状态这与现实的只输出一瓶饮料的结果不相符使用语言完成设计解自动售货机的代码如下所示可修编可修编可修编可修编编写并使用进行仿真答测如下所示仿真波形最下边一行代表的是投分倒数第二行代表的是复位信号第三行是时钟信

15、号第二行是投分由图可知在投个分个分个分两个分个分个分个分个分都可使输出信号为满足题意要求使用进行综合答约束文件如下可修编创建 -.可修编.#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 个

16、 5 分,1 个 5 分、1 个 10 分,两个 10 分,1 个 10 分、1 个 5 分,2 个 5 分、1 个 10 分都可使输出信号为 1,满足题意要求。4)使用 Synopsys DC 进行综合。答:autosel.con 约束文件如下:#Constrain#reset_design 自动售货机模型一题目描述编写一个自动售货机模型售货机出售分的饮料投币器只接受分和角硬币必须提供适当数目的零钱投币器不找钱二实验容定义状态并画出状态转换图解释设计思路答我在设计本题所要求的售货机时使用了个的状态这使得只在投币后可修编的一个时钟周期处于高电平而不会长期处于高电平的状态这与现实的只输出一瓶饮料

17、的结果不相符使用语言完成设计解自动售货机的代码如下所示可修编可修编可修编可修编编写并使用进行仿真答测如下所示仿真波形最下边一行代表的是投分倒数第二行代表的是复位信号第三行是时钟信号第二行是投分由图可知在投个分个分个分两个分个分个分个分个分都可使输出信号为满足题意要求使用进行综合答约束文件如下可修编创建 -.可修编.create_clock-period 490.2 get_ports clk#创建频率为 2.04MHz 的时钟信号 set_clock_latency-source -max 10 get_clocks clk set_clock_latency-max 10 get_clock

18、s clk set_clock_uncertainty-setup 20 get_clocks clk set_clock_transition 10 get_clocks clk set_input_delay-max 60-clock clk get_ports ten set_input_delay-max 60-clock clk get_ports five set_driving_cell-lib_cell bufbd7 all_inputs set_output_delay-max 80-clock clk get_ports out set_load load_of cb13f

19、s120_tsmc_max/bufbd7/I get_ports out set_max_area 10000 DC综合脚本文件 dc.tcl 如下:#run script#printvar target_library printvar link_library check_library check_tlu_plus_files read_verilog ./rtl/autosel.v#读文件 自动售货机模型一题目描述编写一个自动售货机模型售货机出售分的饮料投币器只接受分和角硬币必须提供适当数目的零钱投币器不找钱二实验容定义状态并画出状态转换图解释设计思路答我在设计本题所要求的售货机时使用

20、了个的状态这使得只在投币后可修编的一个时钟周期处于高电平而不会长期处于高电平的状态这与现实的只输出一瓶饮料的结果不相符使用语言完成设计解自动售货机的代码如下所示可修编可修编可修编可修编编写并使用进行仿真答测如下所示仿真波形最下边一行代表的是投分倒数第二行代表的是复位信号第三行是时钟信号第二行是投分由图可知在投个分个分个分两个分个分个分个分个分都可使输出信号为满足题意要求使用进行综合答约束文件如下可修编创建 -.可修编.Link#连接到目标库 check_design#检测设计是否由问题 source ./scripts/autosel.con#加上约束文件 check_timing#检测时序

21、pile_ultra-scan-retime#对文件进行编译 redirect-tee-file rc.rpt report_constraint-all redirect-tee-file rt.rpt report_timing redirect-tee-file ra.rpt report_area#产生各种约束的报告 write-f ddc-hier-out autosel.ddc#生成最后的.ddc 文件 产生的 rc.rpt 文件:Information:Updating design information.(UID-85)*Report:constraint 自动售货机模型一题

22、目描述编写一个自动售货机模型售货机出售分的饮料投币器只接受分和角硬币必须提供适当数目的零钱投币器不找钱二实验容定义状态并画出状态转换图解释设计思路答我在设计本题所要求的售货机时使用了个的状态这使得只在投币后可修编的一个时钟周期处于高电平而不会长期处于高电平的状态这与现实的只输出一瓶饮料的结果不相符使用语言完成设计解自动售货机的代码如下所示可修编可修编可修编可修编编写并使用进行仿真答测如下所示仿真波形最下边一行代表的是投分倒数第二行代表的是复位信号第三行是时钟信号第二行是投分由图可知在投个分个分个分两个分个分个分个分个分都可使输出信号为满足题意要求使用进行综合答约束文件如下可修编创建 -.可修编

23、.-all_violators Design:AUTOSEL Version:G-2012.06-SP4 Date :Tue May 20 20:15:05 2014*This design has no violated constraints.1 产生的 rt.rpt 文件:*Report:timing -path full -delay max -max_paths 1 Design:AUTOSEL Version:G-2012.06-SP4 Date :Tue May 20 20:15:05 2014*Some/all delay information is back-annotat

24、ed.自动售货机模型一题目描述编写一个自动售货机模型售货机出售分的饮料投币器只接受分和角硬币必须提供适当数目的零钱投币器不找钱二实验容定义状态并画出状态转换图解释设计思路答我在设计本题所要求的售货机时使用了个的状态这使得只在投币后可修编的一个时钟周期处于高电平而不会长期处于高电平的状态这与现实的只输出一瓶饮料的结果不相符使用语言完成设计解自动售货机的代码如下所示可修编可修编可修编可修编编写并使用进行仿真答测如下所示仿真波形最下边一行代表的是投分倒数第二行代表的是复位信号第三行是时钟信号第二行是投分由图可知在投个分个分个分两个分个分个分个分个分都可使输出信号为满足题意要求使用进行综合答约束文件如

25、下可修编创建 -.可修编.Operating Conditions:cb13fs120_tsmc_max Library:cb13fs120_tsmc_max Wire Load Model Mode: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 cloc

26、k network delay(ideal)20.00 20.00 state_reg0/CP(sdcrb1)0.00 20.00 r state_reg0/Q(sdcrb1)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 自动售货机模型一题目描述编写一个自动售货机模型售货机出售分的饮料投币器只接受分和角硬币必须提供适当数目的零钱投

27、币器不找钱二实验容定义状态并画出状态转换图解释设计思路答我在设计本题所要求的售货机时使用了个的状态这使得只在投币后可修编的一个时钟周期处于高电平而不会长期处于高电平的状态这与现实的只输出一瓶饮料的结果不相符使用语言完成设计解自动售货机的代码如下所示可修编可修编可修编可修编编写并使用进行仿真答测如下所示仿真波形最下边一行代表的是投分倒数第二行代表的是复位信号第三行是时钟信号第二行是投分由图可知在投个分个分个分两个分个分个分个分个分都可使输出信号为满足题意要求使用进行综合答约束文件如下可修编创建 -.可修编.clock uncertainty -20.00 490.20 output extern

28、al delay -80.00 410.20 data required time 410.20 -data required time 410.20 data arrival time -21.37 -slack(MET)388.83 左侧一列是每一项计划所用的时间,右侧一列是到目前所用的总时间,而且我们可以看出来实际的到达时间远远小于要求的时间,因此时序方面是满足设计要求的。1 产生的 ra.rpt 文件:*Report:area Design:AUTOSEL Version:G-2012.06-SP4 Date :Tue May 20 20:15:05 2014*自动售货机模型一题目描述

29、编写一个自动售货机模型售货机出售分的饮料投币器只接受分和角硬币必须提供适当数目的零钱投币器不找钱二实验容定义状态并画出状态转换图解释设计思路答我在设计本题所要求的售货机时使用了个的状态这使得只在投币后可修编的一个时钟周期处于高电平而不会长期处于高电平的状态这与现实的只输出一瓶饮料的结果不相符使用语言完成设计解自动售货机的代码如下所示可修编可修编可修编可修编编写并使用进行仿真答测如下所示仿真波形最下边一行代表的是投分倒数第二行代表的是复位信号第三行是时钟信号第二行是投分由图可知在投个分个分个分两个分个分个分个分个分都可使输出信号为满足题意要求使用进行综合答约束文件如下可修编创建 -.可修编.Li

30、brary(s)Used:cb13fs120_tsmc_max(File:/cad/share/ref/libs/mw_lib/sc/LM/sc_max.db)Number of ports:5 Number of nets:15 Number of cells:8 Number of binational cells:6 Number of sequential cells:2 Number of macros:0 Number of buf/inv:0 Number of references:6 binational area:10.000000 Buf/Inv area:0.00000

31、0 Nonbinational area:15.750000 Net Interconnect area:undefined (Wire load has zero net area)Total cell area:25.750000 Total area:undefined 1 组合逻辑电路所用的面积为 10um2,非组合逻辑所用面积为 15.75um,因此自动售货机模型一题目描述编写一个自动售货机模型售货机出售分的饮料投币器只接受分和角硬币必须提供适当数目的零钱投币器不找钱二实验容定义状态并画出状态转换图解释设计思路答我在设计本题所要求的售货机时使用了个的状态这使得只在投币后可修编的一个时

32、钟周期处于高电平而不会长期处于高电平的状态这与现实的只输出一瓶饮料的结果不相符使用语言完成设计解自动售货机的代码如下所示可修编可修编可修编可修编编写并使用进行仿真答测如下所示仿真波形最下边一行代表的是投分倒数第二行代表的是复位信号第三行是时钟信号第二行是投分由图可知在投个分个分个分两个分个分个分个分个分都可使输出信号为满足题意要求使用进行综合答约束文件如下可修编创建 -.可修编.总的面积为 25.75um2。最终的综合电路图:Autosel dc 综合电路 三、实验报告要求 1)设计思路,状态定义,转台转换图。2)使用 Verilog HDL完成设计。3)编写 testbench。4)VCS完

33、成仿真,对仿真结果进行分析。5)编写 Synopsys DC 综合脚本文件 dc.tcl 以及约束文件 autosel.con。6)使用 Synopsys DC 进行综合,给出综合后的报告,包括 rc.rpt,rt.rpt,ra.rpt,并做必要说明。7)综合后的电路图。四、分析与讨论 在做本次试验时,由于刚开始使用的投币信号的脉冲较宽,使得输出信号在时输出信号有效的最后一个信号为高时,状态发生了连续的跳转,最后的输出信号也自动售货机模型一题目描述编写一个自动售货机模型售货机出售分的饮料投币器只接受分和角硬币必须提供适当数目的零钱投币器不找钱二实验容定义状态并画出状态转换图解释设计思路答我在设

34、计本题所要求的售货机时使用了个的状态这使得只在投币后可修编的一个时钟周期处于高电平而不会长期处于高电平的状态这与现实的只输出一瓶饮料的结果不相符使用语言完成设计解自动售货机的代码如下所示可修编可修编可修编可修编编写并使用进行仿真答测如下所示仿真波形最下边一行代表的是投分倒数第二行代表的是复位信号第三行是时钟信号第二行是投分由图可知在投个分个分个分两个分个分个分个分个分都可使输出信号为满足题意要求使用进行综合答约束文件如下可修编创建 -.可修编.发生了迅速的变化,考虑时序之后,使用单周期脉冲的输入信号使得输出信号在下一个周期有效,而在过一个周期由于此时输入信号无效,使得状态不再改变而使得输出信号

35、也只有在一个周期为高电平,从而满足了要求。此外,在刚开始设计时由于对状态机的编写规不清楚,使用了 ten 和 five作为 always 语句的触发条件,虽然可以仿真出波形,但是由于不符合 dc 综合的规,使得在 dc 时出现了“将 CLK信号作为输入信号”的错误,状态机的下周期逻辑只能使用 clk作为触发条件。五、教师评语 签名:日期:成绩 自动售货机模型一题目描述编写一个自动售货机模型售货机出售分的饮料投币器只接受分和角硬币必须提供适当数目的零钱投币器不找钱二实验容定义状态并画出状态转换图解释设计思路答我在设计本题所要求的售货机时使用了个的状态这使得只在投币后可修编的一个时钟周期处于高电平

36、而不会长期处于高电平的状态这与现实的只输出一瓶饮料的结果不相符使用语言完成设计解自动售货机的代码如下所示可修编可修编可修编可修编编写并使用进行仿真答测如下所示仿真波形最下边一行代表的是投分倒数第二行代表的是复位信号第三行是时钟信号第二行是投分由图可知在投个分个分个分两个分个分个分个分个分都可使输出信号为满足题意要求使用进行综合答约束文件如下可修编创建 -.可修编.实验二、设计 PCM30 基群帧同步电路 一、题目描述 设计 PCM30 基群帧同步电路,该 PCM30 机群系统结构如下:输入输出信号说明:DATA :输入串行码流,速率为 2.04Mb/S;CLK :输入时钟,频率为 2.04MH

37、z;/FLOSS :输出失步信号,低电平有效。电路功能说明:1输入码流 DATA,速率为 2.04Mb/S;每帧 256bit,其中前 8bit为帧同步码;偶数帧的帧同步码为 10011011,奇数帧的帧同步码为 110XXXXX(X为任意值)。2系统初始状态为失步态,失步信号 FLOSS输出低电平,电路在输入码流里逐比特搜寻同步码,当搜寻到第一个偶帧同步码后,电路转为逐帧搜寻,当连续三帧均正确地搜寻到同步码后,系统状态转为同步态,失步信号输出高电平;否则电路重新进入逐比特搜寻状态。3系统处于同步态后,当连续四帧检出的同步码均错误,则系统转为失步态,失电路时序说明:1)输入信号 DATA与 C

38、LK的时序关系 2)同步过程时序与 DATA的帧结构 定时 电路 同步 搜索 DATA CLK FLOSS 自动售货机模型一题目描述编写一个自动售货机模型售货机出售分的饮料投币器只接受分和角硬币必须提供适当数目的零钱投币器不找钱二实验容定义状态并画出状态转换图解释设计思路答我在设计本题所要求的售货机时使用了个的状态这使得只在投币后可修编的一个时钟周期处于高电平而不会长期处于高电平的状态这与现实的只输出一瓶饮料的结果不相符使用语言完成设计解自动售货机的代码如下所示可修编可修编可修编可修编编写并使用进行仿真答测如下所示仿真波形最下边一行代表的是投分倒数第二行代表的是复位信号第三行是时钟信号第二行是

39、投分由图可知在投个分个分个分两个分个分个分个分个分都可使输出信号为满足题意要求使用进行综合答约束文件如下可修编创建 -.可修编.二、实验容 1)定义状态,并画出状态转换图,解释设计思路 答:为了实现 pcm30 的功能,我的分析思路如下:首先,还没有进入帧同步状态时,是位寻址状态依次为 bit0,bit1,bit2,bit3,bit4,bit5,bit6,bit7;当满足了一次偶校验之后,要进行空 248 位的处理,这个状态可以用 bitblank来表示;再次进行一次奇校验用 oddcheck0,oddcheck1,oddcheck2 三个状态来处理;奇校验完成进入 oddblank 来表示空

40、缺 253 位;在此进行一次偶校验用 evencheck0,evencheck1,evencheck2,evencheck3,evencheck4,evencheck5,evencheck6,evencheck7 来表示,通过后使 floss=1;如果通过了偶校验则进入 evenblank状态来使 pcm30 空缺 248 位,此时进入帧校验的奇校验;帧校验的奇校验使用三个状态来完成,分别为:oddhold0,oddhold1,oddhold2来校验奇帧的 1、2、3 位;奇校验可能产生不同的结果,例如在 0,1,2 位产生不符合和符合一共 4 种情况,这样一来就不能只空固定的位数了,因为假如

41、在 0 位就不符合的话,在 0位就跳出了,这样需要跳过 255 位,与之类似,1 位不符合要跳 254 位,而 3 为自动售货机模型一题目描述编写一个自动售货机模型售货机出售分的饮料投币器只接受分和角硬币必须提供适当数目的零钱投币器不找钱二实验容定义状态并画出状态转换图解释设计思路答我在设计本题所要求的售货机时使用了个的状态这使得只在投币后可修编的一个时钟周期处于高电平而不会长期处于高电平的状态这与现实的只输出一瓶饮料的结果不相符使用语言完成设计解自动售货机的代码如下所示可修编可修编可修编可修编编写并使用进行仿真答测如下所示仿真波形最下边一行代表的是投分倒数第二行代表的是复位信号第三行是时钟信

42、号第二行是投分由图可知在投个分个分个分两个分个分个分个分个分都可使输出信号为满足题意要求使用进行综合答约束文件如下可修编创建 -.可修编.符合于不符合都是要跳过 253 位的,因此应该跳的位数随着不同的情况来变化,需要有跳 255,254,253 位状态 oddblank0,oddblank1 和 oddblank2 的分别对应于三个奇校验的状态 oddhold0,oddhold1,oddhold2;oddblank0,oddblank1 和 oddblank2 结束后的状态应该跳到偶校验的状态中,使用 8 个状态来完成,分别为:evenhold0,evenhold1,evenhold2,ev

43、enhold3,evenhold4,evenhold5,evenhold6,evenhold7;前 7 个状态不满足或者第 8 个状态结束分别跳转到 evenblank0,evenblank1,evenblank2,evenblank3,evenblank4,evenblank5,evenblank6,evenblank7,结束后跳转到 oddhold 处。状态跳转图如下所示:BitX位校验 X=07 OddcheckX 奇校验 X=0,1,2 Bitblank 空 248 位 evencheckX 偶校验 X=07 oddhold X 奇校验 X=0,1,2 Oddblank 空 253 位

44、 oddblankX 空 255-X位 X=0,1,2 evenblankX 空 255-X位 X=07 Evenblank 空 248 位 evenhold X 偶校验 X=07 第 i 位不符 第 i 位不符 第 i 位不符 第 i 位不符 且达到 4 次 第 i 位不符没达到 4 次或符合 第 i 位不符没达到 4 次或符合 自动售货机模型一题目描述编写一个自动售货机模型售货机出售分的饮料投币器只接受分和角硬币必须提供适当数目的零钱投币器不找钱二实验容定义状态并画出状态转换图解释设计思路答我在设计本题所要求的售货机时使用了个的状态这使得只在投币后可修编的一个时钟周期处于高电平而不会长期处

45、于高电平的状态这与现实的只输出一瓶饮料的结果不相符使用语言完成设计解自动售货机的代码如下所示可修编可修编可修编可修编编写并使用进行仿真答测如下所示仿真波形最下边一行代表的是投分倒数第二行代表的是复位信号第三行是时钟信号第二行是投分由图可知在投个分个分个分两个分个分个分个分个分都可使输出信号为满足题意要求使用进行综合答约束文件如下可修编创建 -.可修编.2)使用 Verilog语言完成设计;答:pcm30 实验代码如下:module pcm30(clk,rst,data,FLOSSN);input clk,data,rst;output FLOSSN;wire net_data,net_clk,

46、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);自动售货机模型一题目描述编写一个自动售货机模型售货机出售分的饮料投币器只接受分和角硬币必须提供适当数目的零钱投币器不找钱二实验容定义状态并画出状态转换图解释设计思路答我在设计本题所要求的售货机时使用了个的状态这使得

47、只在投币后可修编的一个时钟周期处于高电平而不会长期处于高电平的状态这与现实的只输出一瓶饮料的结果不相符使用语言完成设计解自动售货机的代码如下所示可修编可修编可修编可修编编写并使用进行仿真答测如下所示仿真波形最下边一行代表的是投分倒数第二行代表的是复位信号第三行是时钟信号第二行是投分由图可知在投个分个分个分两个分个分个分个分个分都可使输出信号为满足题意要求使用进行综合答约束文件如下可修编创建 -.可修编.pcm I_pcm(.clk(net_clk),.rst(net_rst),.data(net_data),.floss1(net_FLOSSN);endmodule module pcm(cl

48、k,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:0evenblkct2;reg 7:0evenblkct3;reg 7:0evenblkct4;reg 7:0evenblkct5;自动售货机模

49、型一题目描述编写一个自动售货机模型售货机出售分的饮料投币器只接受分和角硬币必须提供适当数目的零钱投币器不找钱二实验容定义状态并画出状态转换图解释设计思路答我在设计本题所要求的售货机时使用了个的状态这使得只在投币后可修编的一个时钟周期处于高电平而不会长期处于高电平的状态这与现实的只输出一瓶饮料的结果不相符使用语言完成设计解自动售货机的代码如下所示可修编可修编可修编可修编编写并使用进行仿真答测如下所示仿真波形最下边一行代表的是投分倒数第二行代表的是复位信号第三行是时钟信号第二行是投分由图可知在投个分个分个分两个分个分个分个分个分都可使输出信号为满足题意要求使用进行综合答约束文件如下可修编创建 -.

50、可修编.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=8b00001000,/8 oddcheck0=8b00001001,/9 oddcheck1=8b00001010,/10 oddcheck2=8b0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com