SOC设计实验报告.docx

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
西北工业大学 《SOC设计实践》实验报告 学 院: 软件与微电子学院 学 号: 姓 名: 专 业: 时间: 实验地点: 实验一、编写一个自动售货机 Verilog HDL模型 题目描述 题目描述 编写一个自动售货机Verilog HDL模型,(1)售货机出售15分的饮料。(2)投 币器只接受5分和1角硬币。(3)必须提供适当数目的零钱,投币器不找钱。 二、实验内容 1)定义状态,并画出状态转换图,解释设计思路; 答:我在设计本题所要求的售货机时使用了 4个状态,分别为start (00),st1 (01),st2( 10),st3( 11)其中在第三个状态是输出 out为1,其他的三个状 态输出为0。状态转换图如下所示: 其中状态机在跳到st3时,由Five直接跳的 其中状态机在跳到st3时,由Five直接跳的start 后的一个时钟周期处于高电平而不会长期处于高电平的状态, 一瓶饮料的结果不相符。 2)使用Verilog语言完成设计; 解:自动售货机的verilog代码如下所示: module AUTOSEL(five,te n,clk,rst,tet)= in put ten, five; st3 in put clk; Five in put rst; output out; wire out; ten二 状态这使得out只在投币 这与现实的只输出 St1 Five St2 reg [1:0]state; parameter st0=2b00, st1=2b01, st2=2b10, st3=2b11; always@(posedge clk or n egedge rst) beg in if(rst==0) beg in state=st0; end else beg in case(state) stO: beg in if(five==1) beg in state=st1; end else beg in if(te n==1) begi n state=st2; end else begi n state=stO; end end end st1: beg in if(five==1) beg in state=st2; end else beg in if(te n==1) begi n state=st3; end else begi n state=st1; end end end st2: beg in if(five==1) beg in state=st3; end else beg in if(te n==1) begi n state=st3; end else begi n state=st2; end end end st3: beg in state=st0; end default: beg in state=st0; end endcase end end assig n out=(state==st3)?1:0; en dmodule 3)编写testbench,并使用Synopsys VCS进行仿真; 答:testbench测试代码如下: module testbe nch; reg clk,rst_n; reg five_ce nts,te n_cen ts; wire soda_out; always #1 clk=~clk; in itial begi n clk=0; five_ce nts=O; ten_cen ts=0; rst_ n=1; #10 rst_n=0; #10 rst_n=1; 〃1 三个五分的 #10 five_ce nts=1; #2 five_ce nts=0; #10 five_ce nts=1; #2 five_ce nts=0; #10 five_ce nts=1; #2 five_ce nts=0; 〃2 —个五分,一个十分 #20 five_ce nts=1; #2 five_ce nts=0; #10 ten_ce nts=1; #2 ten_cen ts=0; 〃3 两个十分 #20 ten_ce nts=1; #2 ten_cen ts=0; #10 ten_ce nts=1; #2 ten_cen ts=0; 〃4 一个十分,一个五分 #20 ten_ce nts=1; #2 ten_cen ts=0; #10 five ce nts=1; #2 five_ce nts=O; 〃5 两个五分,一个十分 #20 five_ce nts=1; #2 five_ce nts=0; #10 five_ce nts=1; #2 five_ce nts=0; #10 ten_ce nts=1; #2 ten_cen ts=0; #10 $st

您可能关注的文档

文档评论(0)

wangyueyue + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档