- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
西北工业大学
《SOC设计实践》实验报告
学 院: 软件与微电子学院 学 号: 姓 名: 专 业: 时 间: 实验地点:
实验一、编写一个自动售货机Verilog HDL模型售货机出售15分的饮料。投币器只接受5分和1角硬币。必须提供适当数目的零钱,投币器不找钱。实验定义状态,并画出状态转换图,解释设计思路;
其中状态机在跳到st3时,由st3直接跳的start状态这使得out只在投币后的一个时钟周期处于高电平而不会长期处于高电平的状态,这与现实的只输出一瓶饮料的结果不相符。
使用Verilog语言完成设计;
编写testbench,并使用Synopsys VCS进行仿真;
Autosel-vcs仿真波形
最下边一行代表的是投5分,倒数第二行代表的是复位信号,第三行是时钟信号,第二行是投10分,由图可知,在投3个5分,1个5分、1个10分,两个10分,1个10分、1个5分,2个5分、1个10分都可使输出信号为1,满足题意要求。
使用Synopsys DC进行综合。
签名:
日期: 成绩 实验二、设计PCM30基群帧同步电路
题目描述
设计PCM30基群帧同步电路,该PCM30机群系统结构如下:
输入输出信号说明:
DATA :输入串行码流,速率为2.04Mb/S;
CLK :输入时钟,频率为2.04MHz;
/FLOSS :输出失步信号,低电平有效。
电路功能说明:
1.输入码流DATA,速率为2.04Mb/S;每帧256bit,其中前8bit为帧同步码;偶数帧的帧同步码奇数帧的帧同步码为110XXXXX(X为任意值)。
2.系统初始状态为失步态,失步信号FLOSS输出低电平,电路在输入码流里逐比特搜寻同步码,当搜寻到第一个偶帧同步码后,电路转为逐帧搜寻,当连续三帧均正确地搜寻到同步码后,系统状态转为同步态,失步信号输出高电平;否则电路重新进入逐比特搜寻状态。
3.系统处于同步态后,当连续四帧检出的同步码均错误,则系统转为失步态,失电路时序说明:
输入信号DATA与CLK的时序关系
同步过程时序与DATA的帧结构
实验定义状态,并画出状态转换图,解释设计思路
使用Verilog语言完成设计;
编写testbench,并使用Synopsys VCS进行仿真;
使用Synopsys DC进行综合。open_mw_lib pcm30.mw
read_ddc pcm30.ddc
current_design
#设置现在所执行目标模块
link
# Create corners and P/G pads
create_cell {cornerll cornerlr cornerul cornerur} pfrelr
#创建4个角分别为左下,右下,左上,右上
create_cell {vss1left vss1right vss1top vss1bottom} pv0i
#使用单元pv0i创建地电位vss1
create_cell {vdd1left vdd1right vdd1top vdd1bottom} pvdi
#使用单元pvdi创建电源电位vdd1
create_cell {vss2left vss2right vss2top vss2bottom} pv0a
#使用单元pv0a创建地电位vss2
create_cell {vdd2left vdd2right vdd2top vdd2bottom} pvda
#使用单元pvda创建电源电位vdd2
# Define corner pad locations
set_pad_physical_constraints -pad_name cornerul -side 1
#设置cornnerul设置为左端
set_pad_physical_constraints -pad_name cornerur -side 2
#设置cornerur为上端
set_pad_physical_constraints -pad_name cornerlr -side 3
#设
文档评论(0)