精华内容
下载资源
问答
  • verilog 串并转换电路

    2021-09-24 10:59:14
    数字电路中的串并转换主要设计思想来源于用面积换速度,对数据流进行管理。实现串并转换的主要方式有双口RAM,FIFO,移位寄存器等,对于数据量较大的一般使用双口RAM或者FIFO实现,数据量较小的使用移位寄存器实现。...

    数字电路中的串并转换主要设计思想来源于用面积换速度,对数据流进行管理。实现串并转换的主要方式有双口RAM,FIFO,移位寄存器等,对于数据量较大的一般使用双口RAM或者FIFO实现,数据量较小的使用移位寄存器实现。

    一、串转并

    1位串行数据转8位并行数据

    module serial2parallel(
        input           clk,
        input           rst_n,
        input           data_valid_i,
        input           data_in,   //一位输入
        output   reg    data_valid_o,
        output   reg [7:0] data_out	//8位并行输出
        );
    
    always @(posedge clk or negedge rst_n) begin
    	if (rst_n == 1'b0)
    		data_out <= 8'b0;
        //这里假设
    	else if (data_valid_i == 1'b1)begin
            data_out <= {data_out[6:0], data_in};	//低位先赋值
    		//data_out <= {data_in,data_out[7:1]};	//高位先赋值
            data_valid_o <= 1'b1;
        end
    	else begin
            data_valid_o <= 1'b0;
            data_out <= data_out;
        end
    		
    end
    endmodule
    

    仿真结果

    //~ `New testbench
    `timescale  1ns / 1ps        
    
    module tb_serial2parallel;   
    
    // serial2parallel Parameters
    parameter PERIOD  = 10;      
    
    
    // serial2parallel Inputs    
    reg   clk                                  = 0 ;
    reg   rst_n                                = 0 ;
    reg   data_valid_i                         = 0 ;
    reg   data_in                              = 0 ;
    
    // serial2parallel Outputs
    wire  data_valid_o                         ;
    wire  [7:0]  data_out                      ;
    
    
    initial
    begin
        forever #(PERIOD/2)  clk=~clk;
    end
    
    initial
    begin
        #(PERIOD*2) rst_n  =  1;
    end
    
    serial2parallel  u_serial2parallel (
        .clk                     ( clk                 ),
        .rst_n                   ( rst_n               ),
        .data_valid_i            ( data_valid_i        ),
        .data_in                 ( data_in             ),
    
        .data_valid_o            ( data_valid_o        ),
        .data_out                ( data_out      [7:0] )
    );
    
    always @(posedge clk or negedge rst_n) begin
        if(!rst_n)begin
            data_valid_i <= 0;
            data_in <= 0;
        end
        else begin
            data_valid_i <= 1;
            data_in <= {$random} % 2;
        end
        
    end
    
    endmodule
    

    在这里插入图片描述

    二、并转串

    8位并行数据转1位串行数据

    module parallel2serial(
        input clk,
        input rst_n,
        input data_valid_i,
        input [7:0]data_in,//输入的8位并行数据
        output   reg    data_valid_o,
        output   reg    data_out//输出的1位串行数据
    );
    reg[7:0]data;
    reg [3:0]cnt;
    always @(posedge clk or negedge rst_n)
        begin
            if(!rst_n)begin
                data <= 8'b0;
                data_out <= 1'b0;
                data_valid_o <= 1'b0;
            end
                
            else if(data_valid_i && (cnt == 4'b0))begin
                data <= data_in;
            end
                
            else if((4'b0001<= cnt)&&(cnt <= 4'b1000))begin
                data <= data << 1;
                data_out <= data[7];
                data_valid_o <= 1'b1;
            end
            else begin
                data <= 8'b0;
                data_out <= 1'b0;
                data_valid_o <= 1'b0;
            end
                
        end
    
    always @(posedge clk or negedge rst_n) begin
        if(!rst_n)
            cnt <= 4'b0;
        else if(data_valid_i)
            cnt <= cnt + 1'b1;
        else 
            cnt <= 1'b0;
    end
    endmodule
    

    仿真结果

    //~ `New testbench
    `timescale  1ns / 1ps
    
    module tb_parallel2serial;
    
    // parallel2serial Parameters
    parameter PERIOD  = 10;
    
    
    // parallel2serial Inputs
    reg   clk                                  = 0 ;
    reg   rst_n                                = 0 ;
    reg   data_valid_i                         = 0 ;
    reg   [7:0]  data_in                       = 0 ;
    
    // parallel2serial Outputs
    wire  data_valid_o                         ;
    wire  data_out                             ;
    
    
    initial
    begin
        forever #(PERIOD/2)  clk=~clk;
    end
    
    initial
    begin
        #(PERIOD*2) rst_n  =  1;
    end
    
    parallel2serial  u_parallel2serial (
        .clk                     ( clk                 ),
        .rst_n                   ( rst_n               ),
        .data_valid_i            ( data_valid_i        ),
        .data_in                 ( data_in       [7:0] ),
    
        .data_valid_o            ( data_valid_o        ),
        .data_out                ( data_out            )
    );
    
    initial
    begin
        #25 data_valid_i = 1;data_in = 8'b11011100;
        #(PERIOD*8) data_valid_i = 0;data_in = 8'b00000000;
        #20 data_valid_i = 1;data_in = 8'b11101001;
        #(PERIOD*8) data_valid_i = 0;data_in = 8'b00000000;
        #20 data_valid_i = 1;data_in = 8'b11110000;
        #(PERIOD*8) data_valid_i = 0;data_in = 8'b00000000;
        $finish;
    end
    
    endmodule
    

    在这里插入图片描述

    注意无论是串转并还是并转串,都要根据源数据实际的时序来修改代码逻辑。但是核心逻辑基本上是一样的,就是使用移位寄存器。

    展开全文
  • quartus环境下工程,自己写的sipo和piso两个模块,用verilog分别实现串并转换和并串转换,通俗易懂
  • 大学数字电路课程设计 串并-并串转换器的设计
  • 8bit串并变换电路

    2021-03-22 22:51:09
    题目概述 此题目为我专业的一道作业题,8bit串并变换电路,说明:,串行...串并转换的主体为八位二进制移位寄存器,移位寄存器的工作方式例如:b8,1011 1000 移入一个1,结果为1110001,16进制结果为71 工作波形 ...

    题目概述

    此题目为我专业的一道作业题,8bit串并变换电路,说明:,串行数据输入,MSB在前,伴有1bit的MSB的指示信号,连续码流输入,并行输出,伴有1bit的指示信号,要求完整电路图,子模块原理图/流程图,工作波形,电路代码,功能仿真。

    模块原理图

    请添加图片描述

    问题分析

    串并转换的主体为八位二进制移位寄存器,移位寄存器的工作方式例如:b8,1011 1000
    移入一个1,结果为1110001,16进制结果为71

    工作波形

    请添加图片描述

    展开全文
  • 设计的思想是这样的:有一组数据以 N MHz 的速率从 FPGA 的一个 I/O 口传入,要...下面是串并转换器的 Verilog代码实现: module Serial2Pal( input Clk, input din, input ena, output reg [3:0] dout = 4'b00.

    摘要:设计的思想是这样的:有一组数据以 N MHz 的速率从 FPGA 的一个 I/O 口传入,要实现在 FPGA 的另一端 4 个 I/O 口以 N/4 MHz 的速率把传入的速率吐出,也就是说每隔 4 个主时钟周期要从 4 个输出口输出从输入口输入的 4 个数据。

    数据传输按照传输方式分为串行传输和并行传输,串行传输就是每一个时钟传输一个比特(一个逻辑数据:即 0 或者 1),仅有一根线,而用通俗的比喻来讲,就是你的心脏每跳动一次,就发出一个数据。至于并行传输,就是多个串行传输的结合,每一个时钟传输 N 个比特(并行 N 个),有 N 根线。

    串并转换器

    下面是串并转换器的 Verilog 代码实现:

    module Serial2Pal(
        input Clk,
        input din,
        input ena,
        output reg [3:0] dout = 4'b0000
        );
    
        always @ (posedge Clk)
            if(ena)
                dout <= {dout[2:0],din};
            else
                dout <= dout;
    
    endmodule

       其 RTL 电路图如下所示:

    展开全文
  • 本文章是关于FPGA之串并转换
  • verilog--串并转换

    万次阅读 多人点赞 2019-06-05 21:10:58
    (1)四输入单输出的并串转换模块: module b_c(clk,rst_n,en,d,q); input clk,rst_n; input [3:0]d; output reg en; output reg q; reg [3:0]count; reg [3:0]data; always @(posedge clk or negedge rst_n) begin ...

    (1)四输入单输出的并串转换模块:

    module b_c(clk,rst_n,en,d,q);
    input clk,rst_n;
    input [3:0]d;
    output reg en;
    output reg q;
    
    reg [3:0]count;
    reg [3:0]data;
    always @(posedge clk or negedge rst_n)
    begin
        if(rst_n==0)
        begin
           count<=0;
           en<=0;;
           data<=d;
           q<=0;
        end
        else
        begin
           if(count<4)
           begin
               count<=count+1;
               en<=1;
               data<={data[2:0],data[3]};
               q<=data[3];
           end
           else
           begin
           count<=0;
           en<=0;
           q<=0;
           end
        end
    end
    endmodule
    

    仿真图在这里插入图片描述
    (2)单输入四输出的串并转换模块:

    module c_b(clk,rst_n,en,d,q);
    input clk,rst_n;
    input d;
    output reg en;
    output reg[3:0]q;
    
    reg [3:0]count;
    reg [3:0]data;
    always @(posedge clk or negedge rst_n)
    begin
        if(rst_n==0)
        begin
           count<=0;
           en<=0;;
           data<=4'b0000;
           q<=0;
        end
        else
        begin
           if(count<=4)
           begin
               count<=count+1;
               en<=1;
               data<={data[2:0],d};
               q<=data[3:0];
           end
           else
           begin
           count<=0;
           en<=0;
           q<=0;
           end
        end
    end
    endmodule
    

    仿真图
    在这里插入图片描述

    展开全文
  • 用Verilog实现串并转换

    千次阅读 2020-05-11 19:18:19
    一、串转并转换模块 1) 利用移位寄存器 串行转并行数据输出:采用位拼接技术(移位寄存器),将串行的数据总数先表示出来,然后发送一位数据加一,后面的接收的这样标志:data_o <= {data_o[6:0],data_i };1...
  • EDA C
  • 超级好用的串并转换Verilog

    千次阅读 2020-02-09 20:49:59
    本文主要给出四位串并转换的代码,亲测有效!! 相信大家一定能举一反三。
  • 简单的串行数据到8位并行数据的转换,verilog语言描述
  • simulink串并转换

    2021-04-18 16:27:31
    verilog实现串并与并串转换_信息与通信_工程科技_专业资料。串并,并串,并并,串串4种 Abstract 在實務上常常需要將 parallel 轉成 serial, 然後再將 serial 轉......实现串并互换电路,在同步...关于串并转换的 VERI...
  • FPGA串并转换代码 (verilog) 可用.
  • 并串转换电路在通信接口中具有广泛的应用,可编程逻辑阵列由于具备灵活、可重构等特点非常适应于并串转换硬件电路的实现。为了解决硬件电路结构中资源与性能的矛盾,分析比较了移位寄存器、计数器与组合逻辑条件判定...
  • // From the system into the device 外部或其他电路 到 IP核电路,输入 wire [SYS_W-1:0] data_in_from_pins; wire [SYS_W-1:0] data_in_from_pins_DEL   // From the drive out to the system IP核电...
  • 串并转换verilog程序

    万次阅读 2017-05-30 15:20:52
    一个串并转换的简单实现方法,用计数器的最低位作为时钟sclk,数据采用移位寄存器输出。 verilog程序如下 `timescale 1ns/1ns module p2s ( input clk, input rst_n, input load, input [7:0]
  • 串行口工作在方式0时,可通过外接移位寄存器实现串并行转换。在这种方式下,数据为8位,只能从RXD端输入输出,TXD端总是输出移位同步时钟信号,其波特率固定为晶振频率1/12。由软件置位串行控制寄
  • 串并转换逻辑

    2015-08-05 09:38:24
    支持ttl232.485等的串并转换;可编程波特率;注意脉冲信号宽度(采样时钟)尤其是uwr信号
  • 附带原理图 可通过调试 仿真 结果无错,是有关VHDL实现单片机输出的串并转换
  • FPGA中的简单并串,串并转换

    千次阅读 2018-10-28 22:29:51
    1.并串转换 从图中可以看出,并串转换的原理是:先将四位数据暂存于一个四位寄存器器中,然后左移输出到一位输出端口,这里通过一个“移位”指令就ok了。 如: module para_serial( clk, rst_n, en, //外部待...
  • SerDes---串并转换

    千次阅读 2018-08-26 15:37:20
    一种时分多路复用(TDM)、点对点通信技术,即在发送端多路低速并行信号被转换成高速串行信号,经过传输媒介(光缆或铜线),最后在接收端高速串行信号重新转换成低速并行信号,这种点对点的串行通信技术充分利用...
  • 针对模拟信号在传输介质中优于数字信号,而设计数模转换模块。首先用System View对DAC模块进了...通过设计了一个前置的串并转换电路,不仅可以实现8位并行数字信号的D/A转换,还可实现8位串口输入数字信号的D/A转换。
  • endmodule 用Verilog实现串转并电路,输出信号8bit,同时可选择模式MSB或LSB优先。 module ser_to_pal( input clk, input rst_n, input sel_mode, input data_in, output [7:0]data_out ); reg [7:0]LSB_reg; // ...
  • 高速串并转换

    2014-06-04 22:03:11
    基于高速LVDS的串并转换电路设计与研究_李伟伟,对串并转换有较好帮助
  • 4位并串转换

    千次阅读 2019-11-07 11:20:31
    Verilog语言设计4位并串转换器 module pal_serial(clk,reset,en,in,oute); input clk,reset,en; input[3:0] in; output out; reg [3:0] tmp; always@(posedge clk) begin if(!reset) tmp<=4’h0; else if(en) tmp...
  • 阻抗串并转换

    千次阅读 2014-05-21 09:41:52
    如图1,显示了将并联电路转换为串联电路转换方程式(推导过程见最下面的附录)。 图1这些电路为一个频率的等效电路 有趣的是, 那么该如何使用它呢?在您需要估算电感DC电阻(DCR)和电容等效串联...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,357
精华内容 542
关键字:

串并转换电路