SOC设计实验报告文档格式.docx
- 文档编号:16152374
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:64
- 大小:92.32KB
SOC设计实验报告文档格式.docx
《SOC设计实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《SOC设计实验报告文档格式.docx(64页珍藏版)》请在冰豆网上搜索。
我在设计本题所要求的售货机时使用了4个状态,分别为start(00),st1(01),st2(10),st3(11)其中在第三个状态是输出out为1,其他的三个状态输出为0。
状态转换图如下所示:
其中状态机在跳到st3时,由st3直接跳的start状态这使得out只在投币后的一个时钟周期处于高电平而不会长期处于高电平的状态,这与现实的只输出一瓶饮料的结果不相符。
2)使用Verilog语言完成设计;
解:
自动售货机的verilog代码如下所示:
moduleAUTOSEL(five,ten,clk,rst,out);
inputten,five;
inputclk;
inputrst;
outputout;
wireout;
reg[1:
0]state;
parameterst0=2'
b00,
st1=2'
b01,
st2=2'
b10,
st3=2'
b11;
always@(posedgeclkornegedgerst)
begin
if(rst==0)
begin
state<
=st0;
end
else
case(state)
st0:
if(five==1)
=st1;
if(ten==1)
=st2;
st1:
=st3;
st2:
st3:
default:
endcase
end
end
assignout=(state==st3)?
1:
0;
endmodule
3)编写testbench,并使用SynopsysVCS进行仿真;
testbench测试代码如下:
moduletestbench;
regclk,rst_n;
regfive_cents,ten_cents;
wiresoda_out;
always#1clk=~clk;
initial
clk=0;
five_cents=0;
ten_cents=0;
rst_n=1;
#10rst_n=0;
#10rst_n=1;
//1三个五分的
#10five_cents=1;
#2five_cents=0;
//2一个五分,一个十分
#20five_cents=1;
#10ten_cents=1;
#2ten_cents=0;
//3两个十分
#20ten_cents=1;
//4一个十分,一个五分
//5两个五分,一个十分
#10
$stop;
AUTOSELAUTOSEL(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分都可使输出信号为1,满足题意要求。
4)使用SynopsysDC进行综合。
autosel.con约束文件如下:
##################Constrain######################
#reset_design
create_clock-period490.2[get_portsclk]
#创建频率为2.04MHz的时钟信号
set_clock_latency-source-max10[get_clocksclk]
set_clock_latency-max10[get_clocksclk]
set_clock_uncertainty-setup20[get_clocksclk]
set_clock_transition10[get_clocksclk]
set_input_delay-max60-clockclk[get_portsten]
set_input_delay-max60-clockclk[get_portsfive]
set_driving_cell-lib_cellbufbd7[all_inputs]
set_output_delay-max80-clockclk[get_portsout]
set_load[load_ofcb13fs120_tsmc_max/bufbd7/I][get_portsout]
set_max_area10000
DC综合脚本文件dc.tcl如下:
############runscript####################
printvartarget_library
printvarlink_library
check_library
check_tlu_plus_files
read_verilog./rtl/autosel.v
#读文件
Link
#连接到目标库
check_design
#检测设计是否由问题
source./scripts/autosel.con
#加上约束文件
check_timing
#检测时序
compile_ultra-scan-retime
#对文件进行编译
redirect-tee-filerc.rpt{report_constraint-all}
redirect-tee-filert.rpt{report_timing}
redirect-tee-filera.rpt{report_area}
#产生各种约束的报告
write-fddc-hier-outautosel.ddc
#生成最后的.ddc文件
产生的rc.rpt文件:
Information:
Updatingdesigninformation...(UID-85)
****************************************
Report:
constraint
-all_violators
Design:
AUTOSEL
Version:
G-2012.06-SP4
Date:
TueMay2020:
15:
052014
Thisdesignhasnoviolatedconstraints.
1
产生的rt.rpt文件:
timing
-pathfull
-delaymax
-max_paths1
*Some/alldelayinformationisback-annotated.
OperatingConditions:
cb13fs120_tsmc_maxLibrary:
cb13fs120_tsmc_max
WireLoadModelMode:
Inactive.
Startpoint:
state_reg[0]
(risingedge-triggeredflip-flopclockedbyclk)
Endpoint:
out(outputportclockedbyclk)
PathGroup:
clk
PathType:
max
PointIncrPath
-----------------------------------------------------------
clockclk(riseedge)0.000.00
clocknetworkdelay(ideal)20.0020.00
state_reg[0]/CP(sdcrb1)0.0020.00r
state_reg[0]/Q(sdcrb1)1.2321.23r
U15/Z(an02d1)0.14*21.37r
out(out)0.00*21.37r
dataarrivaltime21.37
clockclk(riseedge)490.20490.20
clocknetworkdelay(ideal)20.00510.20
clockuncertainty-20.00490.20
outputexternaldelay-80.00410.20
datarequiredtime410.20
-----------------------------------------------
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SOC 设计 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)