📄 串并.txt
字号:
module transform (clk, rst, sp, Ds, Dp);
inout Ds;
inout [7:0] Dp;
input clk, rst, sp;
reg Dst,sign;
reg [7:0] Dpt;
reg [3:0] counter1, counter2;
assign Ds=sp?1'bz:Dst;
assign Dp=!sp?8'bz:Dpt;
always @ (posedge clk or negedge rst)
if(!rst) //寄存器初始化
begin
Dpt<=0;
Dst<=0;
sign<=1;
counter1<=0;
counter2<=0;
end
else if(sp&&(counter1<=7))//串转并
begin
Dpt[0]<=Ds; //将串型输入赋给临时并型寄存器的最低位
Dpt[7:1]<=Dpt[6:0]; //临时并型寄存器的低7位向左移一位。
counter1<=counter1+1;
end
else if(!sp&&sign) //先于转换,将并型输入信号暂存到dpt中,并将sign赋0,以防反复向dpt赋值。
begin
Dpt<=Dp;
sign<=0;
end
else if(!sp&&(counter2<=7))//并转串
begin
Dpt[7:1]<=Dpt[6:0]; //临时并型寄存器的低7位向左移一位。
Dst<=Dpt[7]; //把最高位赋给输出。
counter2<=counter2+1;
end
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -