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

付费下载

下载本文档

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

文档简介

1、设计一个串入并出转换器。输入是8bit数据,输出是32bit数据。给出AMSD 图和HDL设计描述。提交纸质文档。、ASMD图二、RTL代码/* 程序名称:串入并出转换器简要说明:串行输入 8bit 数据,并行输出 32bit 数据。 编 写:武书肖最后更新: 2015年3月 28日 星期六 */ module ser_to_par(clk,rst_n,en,data_in,data_out,en_out);inputclk,rst_n,en;input7:0 data_in;/8 位串行输入output31:0 data_out;/32 位并行输出outputen_out;/ 输出有效标志位

2、reg7:0p0,p1,p2,p3;/4个 8位寄存器reg31:0data_reg;/32 位输出寄存器reg4:0state,next_state; /FSM 状态regen_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)/ 同步时序描述状态转移beginif(rst_n=0) state=s_idle;else state=ne

3、xt_state;end/ 组合逻辑描述状态转移条件判断next_state=s_in_1; next_state=s_idle; next_state=s_in_2; next_state=s_in_3; next_state=s_full; next_state=s_in_1; next_state=s_idle;always (state or en ) beginnext_state=state; case(state)s_idle: if(en=1) elses_in_1:s_in_2:s_in_3:s_full: if(en=1)elseendcaseend always (pos

4、edge clk) / 同步时序描述次态寄存器的输出 beginif(rst_n=0) en_out=0;elsecase(next_state)s_idle: en_out=0;s_in_1,s_in_2,s_in_3:beginen_out=0; p3=data_in; p2=p3; p1=p2; p0=p1;end s_full: begin data_reg=p3,p2,p1,p0; en_out=1; if(en=1) p3=data_in;endendcase不使用状态机的 RTL代码*end endmodule/*module ser_to_par(clk,rst_n,en,da

5、ta_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 位输出寄存器 regen_out;integerin_counter; / 输入数据计数assign data_out=en_out?data_reg:32dz;always (posedge clk)beginif(!rst_n)begi

6、nin_counter=0; en_out=0;endelse if(en)beginin_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

7、 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);initialbeginclk=0;rst_n=1;en=0;#10 rst_n=0;#100 rst_n=1;#100 en=1;#10000 $stop;endalways #50 clk=clk;always (n e

温馨提示

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

评论

0/150

提交评论