并串串并转换设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
并串/串并转换电路设计
一、实验目的:
用verilog语言设计一个8:1的并串转换电路、设计一个1:8的串并转换电路。
二、实验原理:
实现8位的并行数据转换为串行的数据:并行转串行,只要把每个输入按从高到低的顺序输出即可。即每个时钟脉冲输出一个数据。
实现8位的串行数据转换为并行的数据:8位串行数据转换为并行数据,需要一个模为8的计数器,当计到8个时钟脉冲时,把之前的8个数据全部输出,然后从新接收。
三、实验内容:
用verilog实现8位的并行数据转换为串行的数据:
module bingchuan(out,in,rst,clk);
output out;
reg out;
input [7:0] in;
input rst,clk;
integer i=0;
always@(posedge clk)
begin
if(rst)
out<=0;
else
begin
if(i==8)
begin
out<=0;
end
else
out<=in[i];
i<=i+1;
end
end
endmodule
module textbingchuan;
reg [7:0] in;
reg rst,clk;
wire out;
bingchuan bc(out,in,rst,clk);
initial clk=1;
always #5 clk=~clk;
initial
begin
rst=1;
#100 rst=0;in=8'b11101110;
end
endmodule
仿真后的波形:
用verilog实现8位的串行数据转换为并行的数据:module chuanbing(out,in,rst,clk);
output [7:0] out;
reg [7:0] out;
input in,rst,clk;
reg[7:0] temout;
reg[2:0] cd;
always@(posedge clk)
begin
if(rst)
cd=3'b111;
else
begin
temout[cd]<=in;
cd<=cd-1'b1;
if(cd==3'b111)
begin
out<=temout;
end
else
out<=8'bz;
end
end
endmodule
module textchuanbing;
reg rst,clk,in;
wire [7:0] out; chuanbing ch(out,in,rst,clk); initial clk =0;
always#5 clk=~clk;
initial
begin
rst=1;
#10 rst =0;in=1;
#10 in=0;
#10 in=1;
#10 in=1;
#10 in=0;
#10 in=1;
#10 in=0;
#10 in=1;
#10 in=1;
#10 in=1;
#10 in=0;
#10 in=1;
end
endmodule
仿真后的波形: