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





《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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SOC 设计 实验 报告 计算机 嵌入式 开发

限制150内