首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

求串并转换verilog源码

求串并转换verilog源码

请教串并转换程序,verilog语言编写的

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'bzst;
assign Dp=!sp?8'bzpt; 

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 

这个版主不太冷 =========================== 我的中电网博客:http://blog.chinaecnet.com/u/20/index.htm

kankan

返回列表