verilog入门经验(三)-- 并转串

原创 2015年07月10日 16:20:47

      并转串电路主要由时钟(clk)、复位信号(rst)、并行输入信号(pdin)、串行输出信号(sdout)和使能信号(en)组成。

      其它信号都是名字意义,现在主要讲下使能信号。使能信号表示开始执行并转串操作,由于并转串是移位操作,当一次并转串完成后,需要重新载入待转换的并行数据时,使能信号要再起来一次。

      下面是souce driver COB测试程序中用到的并转串实例,这个例子中多了一个width_sw信号,用来区分8bit/6bit输入并行数据。本例子中是从并行输入数据的低为开始转换的。

module p2s (
	    pdin,
	    sdout,
	    en,
		 width_sw,

	    clk,
	    rstn
	    );

   input	[7:0]	pdin;		// !!!共8bit
   output		sdout;
   input		en;
	input		width_sw;

   input		clk;
   input		rstn;

   ////////////////////////////////////////////////////////////////

   reg [6:0] 		tmp;		// !!!共7bit
   reg sdout;

   always @ ( posedge clk or negedge rstn )
     if ( !rstn )
       {tmp, sdout} <= 0;
     else 
		if ( en )		// start p2s
			{tmp, sdout} <= pdin;
		else	
			begin
				if( width_sw )
					{tmp, sdout} <= {'b0, tmp};
				else
					{tmp[4:0], sdout} <= {'b0, tmp[4:0]};
			end
         
   ////////////////////////////////////////////////////////////////

endmodule // p2s

 

如果是将一个固定的并行数据一直做串行转换输出,那么可以如下所写:

 always @ ( posedge clk or negedge rstn )
     if ( !rstn )
       {tmp, sdout} <= 0;
     else
  if ( en )  // start p2s
   {tmp, sdout} <= pdin;
  else 
   begin
    if( width_sw )
     {tmp, sdout} <= {tmp[0], tmp};
    else
     {tmp[4:0], sdout} <= {tmp[0], tmp[4:0]};
   end

将并转串的移位操作改为循环操作,此时使能信号不用周期性起来,只要在开始转换时起来一次即可。

串并转换与并串转换的Verilog实现

  • 2014年10月09日 13:48
  • 332KB
  • 下载

串并转换verilog程序

一个串并转换的简单实现方法,用计数器的最低位作为时钟sclk,数据采用移位寄存器输出。 verilog程序如下 `timescale 1ns/1ns module p2s ...
  • xinlukk
  • xinlukk
  • 2017年05月30日 15:20
  • 1720

systemverilog string match

需求: 在systemverilog 的string看是否存在某个字节或某段字符串 其实请前辈说match也不算是sv的语法了,而且只IEEE中确实也没有该function, 不过可以实现上面所需,...
  • ocarvb
  • ocarvb
  • 2016年09月28日 22:29
  • 997

FPGA驱动74hc595代码

  • 2010年03月01日 20:37
  • 377KB
  • 下载

串/并转换

串/并转换是高速数据流处理的重要技巧之一。串/并转换的实现方法多种多样,根据数据的顺序与数量的要求,可以选用寄存器、双口RAM(Dual RAM)、SRAM、SDRAM、FIFO等实现。对于数量比较小...
  • yundanfengqing_nuc
  • yundanfengqing_nuc
  • 2016年10月21日 14:41
  • 1120

可综合的8位串并转换verilog代码

  • 2011年09月20日 09:40
  • 351B
  • 下载

串转并芯片74HC595和74HC164的区别

串转并芯片一般用于对于速度要求不是非常严格并且IO资源有限的系统中,可以通过级联的方式轻松地扩展系统的可用输出IO口数量。同样的也可以使用并转串芯片扩展输入IO口的数量。        这里说一说串转...
  • tq384998430
  • tq384998430
  • 2016年12月02日 16:29
  • 5615

51单片机使用74LS165实现并入串出(中断和轮询方法)

74LS165简介 主要引脚介绍: SO:串行数据输出端 QH:反相串行数据输出端 D0~D7:并行数据输入端 CLK:时钟输入端(需要接时钟源,51单片机串口工作在方式0时接TXD(P3....
  • lczdk
  • lczdk
  • 2016年11月02日 12:57
  • 1784

FPGA学习(第7节)-Verilog状态机(状态按条件切换)

好的设计思路,扎实的设计基础是Verilog设计电路的重点。 之前我们学习了Verilog计数器设计 计数器学习链接:http://blog.csdn.net/fengyuwuzu0519/art...
  • fengyuwuzu0519
  • fengyuwuzu0519
  • 2017年05月20日 11:52
  • 1304

Verilog实现整数与小数部分的二进制转化为十进制

最近在做进制转化的FPGA实现,用到了FPGA的串口通信功能,首先将二进制数值(32定点数,末16位代表小数)由PC写入串口小助手,传给FPGA,再将转化后的结果由串口传到PC端显示,整体的过程比较简...
  • xuanwo11
  • xuanwo11
  • 2017年05月28日 21:47
  • 1479
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:verilog入门经验(三)-- 并转串
举报原因:
原因补充:

(最多只允许输入30个字)