串并.txt
来自「sdram的控制器 verilog源码」· 文本 代码 · 共 41 行
TXT
41 行
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 + =
减小字号Ctrl + -
显示快捷键?