串入并出转换器

上传人:hs****ma 文档编号:511364408 上传时间:2023-09-11 格式:DOC 页数:5 大小:196KB
返回 下载 相关 举报
串入并出转换器_第1页
第1页 / 共5页
串入并出转换器_第2页
第2页 / 共5页
串入并出转换器_第3页
第3页 / 共5页
串入并出转换器_第4页
第4页 / 共5页
串入并出转换器_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《串入并出转换器》由会员分享,可在线阅读,更多相关《串入并出转换器(5页珍藏版)》请在金锄头文库上搜索。

1、设计一个串入并出转换器。输入是8bit数据,输出是32bit数据。给出AMSD 图和HDL设计描述。提交纸质文档。Data r円卩:0|T8*甩卩:01r円卩;0帥:0T11!R7:0 ;P2|7: G Plp:O) ; P0(7;0测3】:0、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 da

2、ta_in;/8 位串行输入output31:0 data_out;/32 位并行输出outputen_out;/ 输出有效标志位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 (po

3、sedge clk)/ 同步时序描述状态转移beginif(rst_n=0) state=s_idle;else state=next_state;/ 组合逻辑描述状态转移条件判断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;end always (state or en ) beginnext_state=state; case(state)s_idle: if(en=1) e

4、lses_in_1:s_in_2:s_in_3:s_full: if(en=1)elseendcaseend always (posedge 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;ends_full: begin data_reg=p3,p2,p1,p0; en_out=1; if(en=1) p3=data_in; end en

5、dcase end endmodule/*不使用状态机的 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; / 输出有效标志位reg7:0 p0,p1,p2,p3; /4个 8位寄存器reg31:0 data_reg; /32 位输出寄存器regen_out;integerin_counter; / 输入数据计数assign data_o

6、ut=en_out?data_reg:32dz;always (posedge clk)beginif(!rst_n)beginin_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_pa

7、ra_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);initialbeginclk=0;rst_n=1;en=0;#10 rst_n=0;#10

8、0 rst_n=1;#100 en=1;#10000 $stop;endalways #50 clk=clk;always (n egedge clk) begi ndatan=$ra ndom%256; enden dmodule四、仿真结果te jar tDjpar_MigJst/-ctatM_ini tBjpar_vtaJsl/enIs jsar vlglsljSratji to jpar_yig5 审i? tnej ! tojpar_vlgJsl/en_(xjtIfiOODOps5洒3刃|M1Od5tlCutsct 12956359 ps由仿真结果可看出,当使能信号有效且连续输入8bit数据时,每4个时钟周期输出一个32bit的数据,输出结果正确,满足设计要求

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号