串转并:我这个实现为每输入四位串行数据,输出一个并行数据

module c2b(input clk,input rst_n,input data_i,output reg[3:0] data_o);reg [2:0] cnt;always@(posedge clk or negedge rst_n)beginif(!rst_n)begindata_o <= 4'b0000;cnt <= 3'b000;endelse beginif(cnt < 4)begindata_o <= {data_o[2:0],data_i};cnt <= cnt + 1;endelse begindata_o <= {3'b000,data_i};cnt <= 3'b001;endendendendmodule
`timescale 1ns / 1psmodule sim_s2f_cdc();reg clk;reg rst_n;reg data_i;wire [3:0]data_o;initial beginclk = 0;forever#2 clk = ~ clk;endinitial beginrst_n = 0;data_i = 0;#10rst_n = 1;#14@(posedge clk)data_i = 1;@(posedge clk)data_i = 0;@(posedge clk)data_i = 1;@(posedge clk)data_i = 0;@(posedge clk)data_i = 1;@(posedge clk)data_i = 1;@(posedge clk)data_i = 1;@(posedge clk)data_i = 0;@(posedge clk)data_i = 1;@(posedge clk)data_i = 0;@(posedge clk)data_i = 1;@(posedge clk)data_i = 1;       endc2b inst_slow2fast(.clk(clk),.rst_n(rst_n),.data_i(data_i),.data_o(data_o)    );endmodule


串行输入1010,1110,1011仿真结果正确

并串转换:

module b2c(input clk,input rst_n,input [3:0] data_i,output reg data_o);reg [2:0] cnt;always@(posedge clk or negedge rst_n)beginif(!rst_n)begindata_o <= 0;cnt <= 3'b000;endelse beginif(cnt < 4)begindata_o <= data_i[3-cnt];cnt <= cnt + 1;endelse begindata_o <= data_i[3];cnt <= 3'b001;endendendendmodule
`timescale 1ns / 1psmodule sim_s2f_cdc();reg clk;reg rst_n;reg [3:0]data_i;wire data_o;initial beginclk = 0;forever#2 clk = ~ clk;endinitial beginrst_n = 0;data_i = 0;#10rst_n = 1;#14@(posedge clk)data_i = 4'b1010;#14@(posedge clk)data_i = 4'b1110;#14@(posedge clk)data_i = 4'b1011;endb2c inst_slow2fast(.clk(clk),.rst_n(rst_n),.data_i(data_i),.data_o(data_o)   );

verilog实现串并转换相关推荐

  1. 用Verilog实现串并转换

    数字IC设计--用Verilog实现串并转换 一.串转并转换模块 1.利用移位寄存器 串行转并行数据输出:采用位拼接技术(移位寄存器),将串行的数据总数先表示出来,然后发送一位数据加一,后面的接收的这 ...

  2. FPGA校招笔试题分析

    仅仅给出下面一个电路图,让你画出Q1,Q2以及Q3的波形,并描述电路功能 第一个触发器的输入是第二个以及第三个触发器的输出的反馈,是Q1与Q2的或非:实际上就是同步三分频电路: 只要触发器复位有初值即 ...

  3. FPGA(九)RTL代码之五(基本电路设计2)

    系列文章目录 FPGA(四)数字IC面试的四个基本问题 FPGA(五)RTL代码之一(跨时钟域设计) FPGA(六)RTL代码之二(复杂电路设计1) FPGA(七)RTL代码之三(复杂电路设计2) F ...

  4. 2020华为海思实习生面试记录

    来自微信公众号:数字芯片联合实验室 2020年4月12日,投简历.我投的是华为海思的数字芯片岗位.首先先是从简历上,你的简历上一定要写清楚自己从大学开始到现在的学习经历,项目经历,自己的知识储备,自己 ...

  5. 【Verilog HDL 训练】第 07 天(串并转换)

    串并转换 1. 复习verilog语法 [选做题] - 文件操作fopen fdisplay fwrite fclose - 生成随机数 random - 初始化 readmemh readmemb ...

  6. 四类九种移位寄存器总结(循环(左、右、双向)移位寄存器、逻辑和算术移位寄存器、串并转换移位寄存器、线性反馈移位寄存器LFSR|verilog代码|Testbench|仿真结果)

    移位寄存器总结 一.前言 二.简单循环左移/右移/双向移位寄存器 2.1 简单循环左移/右移/双向移位寄存器 2.2 verilog代码 2.3 Testbench 2.4 仿真结果 三.逻辑移位与算 ...

  7. 超级好用的串并转换Verilog

    串并转换都是利用移位寄存器.本文拿四位串并转换举例. 串转并就是将低3位信号和输入信号一起赋值.因为经过转换后,码元速率会将为原来四分之一,所以设置4分频时钟,将其输出.而并转串就是不断右移,取高位输 ...

  8. 移位寄存器专题(verilog HDL设计)

    目录 移位寄存器简介 分类 4位右移位寄存器工作原理 1. 16位右移位寄存器 2. 16位左移寄存器 3. 串行输入并行输出寄存器 4. 并行输入串行输出移位寄存器 移位寄存器简介 移位寄存器内的数 ...

  9. [转]常用数字处理算法的Verilog实现

      2.6.3 常用数字处理算法的Verilog实现 1.加法器的Verilog实现 串行加法器 组合逻辑的加法器可以利用真值表,通过与门和非门简单地实现.假设 和 表示两个加数, 表示和, 表示来自 ...

最新文章

  1. mysql 大量数据 更改索引_Mysql索引数据结构详解与索引优化
  2. 社交产品后端架构设计--转载
  3. redis 哨兵_Redis哨兵配置
  4. 浅谈疫情下的就业形势
  5. SAP CRM和C4C数据同步的两种方式概述:SAP PI和HCI
  6. Websocket--- long loop--ajax轮询
  7. 智能家居 (5) —— LD3320语音模块二次开发
  8. python中的魔术方法
  9. 跟谁学上市未满1年遭4家机构6轮做空,市值一周缩水近20亿美元
  10. 使用哪种关机方式后再启动计算机时间最长,有没有哪一种软件可以使电脑在设置好时间后自动开关机...
  11. spring注解方式配置以及spring4的泛型注入 (4)
  12. MySQL - 字段名的修饰
  13. 全能挤房器 v2.1
  14. 红米note7android10,红米Note7 Pro 安卓10.0原生刷机包(最新固件升级包lineage17.1)
  15. 谷歌浏览器好用的插件
  16. nodejs+vue高校教室管理系统
  17. 从零开始学Redis之自在地境
  18. 计算机出国培训,新海岸出国
  19. Cytoscape软件的基本使用
  20. 微信小程序开发中常见问题及解决方法

热门文章

  1. 2022-2028全球与中国液相色谱软件市场现状及未来发展趋势
  2. python 代码片段备忘
  3. 基于JavaWeb的酒店客房预定管理系统
  4. 什么是质量?你真的了解吗?
  5. Opencv图像分割与Watershed算法
  6. 2020一级计算机考证
  7. Datadog 笔记
  8. 面试笔试中算法设计问题的回答技巧总结
  9. 图网络分类以及一些通用框架
  10. Search For Free —— 新闻爬虫及爬取结果的查询网站