串入并出转换器-verilog.doc_第1页
串入并出转换器-verilog.doc_第2页
串入并出转换器-verilog.doc_第3页
串入并出转换器-verilog.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

设计一个串入并出转换器。输入是8bit数据,输出是32bit数据。给出AMSD图和HDL设计描述。提交纸质文档。一、ASMD图2、 RTL代码/*程序名称:串入并出转换器简要说明:串行输入8bit数据,并行输出32bit数据。编 写:武书肖最后更新:2015年3月28日 星期六*/module ser_to_par(clk,rst_n,en,data_in,data_out,en_out);input clk,rst_n,en;input 7:0 data_in; /8位串行输入output 31:0 data_out; /32位并行输出output en_out; /输出有效标志位reg 7:0 p0,p1,p2,p3; /4个8位寄存器reg 31:0 data_reg; /32位输出寄存器reg 4:0 state,next_state; /FSM状态reg en_out;parameter s_idle=5b00001, /状态独热编码 s_in_1=5b00010, s_in_2=5b00100, s_in_3=5b01000, s_full=5b10000;assign data_out=en_out?data_reg:32dz;always (posedge clk) /同步时序描述状态转移begin if(rst_n=0) state=s_idle;else state=next_state;endalways (state or en ) /组合逻辑描述状态转移条件判断begin next_state=state;case(state)s_idle: if(en=1) next_state=s_in_1; else next_state=s_idle; s_in_1: next_state=s_in_2;s_in_2: next_state=s_in_3;s_in_3: next_state=s_full;s_full: if(en=1) next_state=s_in_1; else next_state=s_idle;endcase endalways (posedge clk) /同步时序描述次态寄存器的输出begin if(rst_n=0) en_out=0; else case(next_state)s_idle: en_out=0; s_in_1,s_in_2,s_in_3: begin en_out=0;p3=data_in;p2=p3;p1=p2;p0=p1;ends_full: begin data_reg=p3,p2,p1,p0;en_out=1;if(en=1) p3=data_in;endendcaseendendmodule /*不使用状态机的RTL代码*/module ser_to_par(clk,rst_n,en,data_in,data_out,en_out);input clk,rst_n,en;input 7:0 data_in; /8位串行输入output 31:0 data_out; /32位并行输出output en_out; /输出有效标志位reg 7:0 p0,p1,p2,p3; /4个8位寄存器reg 31:0 data_reg; /32位输出寄存器reg en_out;integer in_counter; /输入数据计数assign data_out=en_out?data_reg:32dz;always (posedge clk) begin if(!rst_n)begin in_counter=0; en_out=0;endelse if(en)begin in_counter=in_counter+1;en_out=0;p3=data_in;p2=p3;p1=p2;p0=p1;data_reg=p3,p2,p1,p0;if(in_counter=3)beginen_out=1;in_counter=0;endendendendmodule 三、 Test Benchtimescale 1 ns/ 1 psmodule seri_to_para_vlg_tst();reg clk;reg 7:0 data_in;reg en;reg rst_n; wire 31:0 data_out;wire en_out; seri_to_para i1 (/ port map - connection between master ports and signals/registers .clk(clk),.data_in(data_in),.data_out(data_out),.en(en),.en_out(en_out),.rst_n(rst_n);initial begin clk=0;rst_n=1;en=0;#10 rst_n=0;#100 rst_n=1;#100 en=1;#10000 $stop; end always #50 clk=clk;always (negedge cl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论