串并转换和16位转8位

串并转换需要用到移位寄存器,窜到并可以使用大括号进行移位保存。并到窜使用输出引出线引出其中一位。

16位转8位需要计数器,计数值为0时输出高8位,计数值为1时输出低八位

窜并转换的原理本质上是移位寄存器。并串转换的原理是:先将四位数据暂存于一个多位寄存器器中,然后左移输出到一位输出端口,这里通过一个“移位”指令就可以了。串并转换的原理是:新输入的位值成为原来数据的最低位,将原来数据的最高位舍去,这里可以通过一个简单的“连接符”就能做到。

module pal_serial_4(       //四位并串转换程序
     clk,rst,load,
     din,dout
     );
     
input clk,rst,load;
input[3:0] din;
output dout;

reg[3:0] databuff; 

always @ (posedge clk or negedge rstor posedge load)
 begin
  if(!rst) databuff<=4'b0;
  else if(load) databuff<=din; 
  else //databuff<={databuff[2:0],1'b0};
  databuff<=databuff<<1;  //将寄存器内的值左移,依次读出
 end
 
assign dout=databuff[3];输出高位

endmodule

 

 


module serial_pal_4(               //四位串并转换程序
     clk,en,rst,
     cin,cout
     );
     
input cin,clk,en,rst;
output[3:0] cout;

reg[3:0] cout;

always @ (posedge clk or negedge rst)
 begin
  if(!rst) cout<=4'b0;
  else if(en)
     cout<={cout[2:0],cin};//窜并转换
    else cout<=cout;
 end
 
endmodule



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值