草庐IT

【Verilog】跨时钟域处理(一)——多bit MUX同步

跨时钟域处理的概念简单来讲,“跨时钟域处理”即:①输入和输出的参照时钟不同。②中间过程的多个步骤会由不同的时钟控制。跨时钟域处理一般涉及“打拍”,即输入和输出中间空几个时钟周期作为缓冲,其目的在于:打拍(缓冲)可以减小亚稳态概率。打拍的经验原则:一般的,在时钟切换的时候,依照后来的时钟打两拍。(如由clk_a切换到clk_b,那么需要clk_b先空打两拍,再进行别的操作。)【详细了解:CDC:跨时钟域处理】多bitMUX同步的概念和框架在data_en为高期间,data_in将保持不变,data_en为高至少保持3个B时钟周期。表明,当data_en为高时,可将数据进行同步。data_in端数

从零开始 verilog 以太网交换机(二)MAC接收控制器的设计与实现

从零开始verilog以太网交换机(二)MAC接收控制器的设计与实现🔈声明:😃博主主页:王_嘻嘻的CSDN主页🧨从零开始verilog以太网交换机系列专栏:点击这里🔑未经作者允许,禁止转载,侵权必删🚩关注本专题的朋友们可以收获一个经典交换机设计的全流程,包括设计与验证(FPGA);以太网MAC的基础知识。新手朋友们还将获得一个具有竞争力的项目经历,后续整个工程和代码下载链接也都会放在csdn和公众号内  本章进行MAC控制器的设计与实现,共分为两个部分:接收控制器和发送控制器。整体架构可以参考:从零开始verilog以太网交换机(一)架构分析,本文将首先分析MAC接收控制器的设计。1、MAC接

基于FPGA的QPSK调制系统verilog开发

目录一、理论基础二、核心程序三、测试结果一、理论基础    正交相移键控(QuadraturePhaseShiftKeying,QPSK)是一种数字调制方式。它分为绝对相移和相对相移两种。由于绝对相移方式存在相位模糊问题,所以在实际中主要采用相对移相方式DQPSK。QPSK是一种四进制相位调制,具有良好的抗噪特性和频带利用率,广泛应用于卫星链路、数字集群等通信业务。 在数字信号的调制方式中QPSK是最常用的一种卫星数字信号调制方式,它具有较高的频谱利用率、较强的抗干扰性、在电路上实现也较为简单。偏移四相相移键控信号简称“O-QPSK”。全称为offsetQPSK,也就是相对移相方式O

基于vivado(语言Verilog)的FPGA学习(3)——FPGA理论知识

基于vivado(语言Verilog)的FPGA学习(3)——FPGA理论知识文章目录基于vivado(语言Verilog)的FPGA学习(3)——FPGA理论知识1.FPGA介绍1.1.FPGA内部结构(1).可编程逻辑块CLB(2).可编程输入/输出单元(IOB)(3).时钟管理模块(CMT)(4).嵌入式块RAM(BRAM)(5).丰富的布线资源(6).底层内嵌功能单元(7).内嵌专用硬核1.2.常用的可编程逻辑器件1.3.FPGA资源报告1.4.FPGA时序优化方式1.5.FPGA功耗报告1.6.FPGA开发流程2.ZYNQ2.1.ZYNQ介绍2.2.内部结构2.3.ZYNQ开发流程2

Verilog位拼接运算符{}

前言在Verilog中如何给一个多位的变量(如123bit)赋值呢?不能连续写123个1吧,此时需要位拼接运算。一:位拼接运算符的定义1:{}位拼接运算符用于将两个或多个信号拼接起来,表示一个整体的信号,如下:a={b[5],b[4:0]}意思为b的最高位b[5]和b的低五位拼接起来,组成的a为6位,相当于:a={b[5],b[4],b[3],b[2],b[1],b[0]}2:即把某些倍号的某些位详细地列出来,中间用逗号分开,最后用大括号括起来表示一个整体信号,例如:{a,b[3:0],c,3'b100}也可以写成为:{a,b[3],b[2],b[1],b[0],c,1'b1,1'b0,1'b

ASIC-WORLD Verilog(8)if-else语句和case语句

 写在前面        在自己准备写一些简单的verilog教程之前,参考了许多资料----Asic-World网站的这套verilog教程即是其一。这套教程写得极好,奈何没有中文,在下只好斗胆翻译过来(加了自己的理解)分享给大家。    这是网站原文:VerilogTutorial        这是系列导航:Verilog教程系列文章导航条件语句之if-else    和C语言等程序语言类似,Verilog语法中的if-else语句可以根据条件的真假来选择执行不同分支的语句。如果每个分支需要执行的语句不止一条,则需要将这些语句都包含在begin-end语句之中。if语句    不带有分支

基于 FPGA 使用 Verilog 实现 IIC(I2C) 协议回环数据传输

目录一、IIC原理1.1概述1.2写操作1.3读操作1.4总线数据传输时间二、项目设计2.1概述2.2状态机2.3波形仿真2.3效果演示本文内容:本文主要基于一篇外文手册24AA04/24LC04B设备,采用IIC协议进行数据传输,用FPGA模拟从机24AA04/24LC04B,PC为主机进行数据传输,深入学习IIC协议一、IIC原理1.1概述根据24AA04/24LC04B手册,可以知晓该设备采用100kHz或者400kHz的速度进行数据传输,同时有一个16字节的缓存器,所以项目中要定义一个16字节的缓存器同时需要定义两块256×8的数据块管脚种类:VCC、GND、SCL、SDAVCC:电源

verilog设计技巧 (1) :复位技术(同步复位、异步复位、异步复位同步释放)

一、复位的类型和划分通常,芯片的复位信号分为两大类,全局复位和局部复位;全局复位:能够确保每个寄存器都处于可控的状态;局部复位:基于软件功能的需求而存在的独立复位,对于某一个模块的单独控制,建议使用局部复位;(等待完善)二、同步复位定义只有在时钟有效沿采样到复位信号的有效电平时,才会执行复位操作;代码always@(posedgeclk)begin  if(!rst_n)    out综合后电路可能一:可能二:优缺点优点:一般可以确保电路是同步电路,有利于静态时序分析;有利于仿真器的仿真;可以滤除复位信号频率大于时钟频率的毛刺;缺点:如综合电路图所示,因为逻辑器件库中的DFF只有异步复位端口,

Vscode环境下Verilog / System Verilog格式化工具推荐及安装配置方法

最近尝试了几款Verilog代码格式化工具,之前一直没有找到效果十分满意的工具,这次找到了谷歌推出的这款工具,同时支持Verilog和SystemVerilog,效果非常好,支持自定义的格式化参数也很丰富,在此做一个推荐。 1.首先在插件中心安装这款插件:SystemVerilogandVerilogFormatterSystemVerilogandVerilogFormatter-VisualStudioMarketplace2.下载verible。verible是谷歌提供的一块verilog工具,我们主要使用它的代码格式化工具。https://github.com/google/verib

Vscode环境下Verilog / System Verilog格式化工具推荐及安装配置方法

最近尝试了几款Verilog代码格式化工具,之前一直没有找到效果十分满意的工具,这次找到了谷歌推出的这款工具,同时支持Verilog和SystemVerilog,效果非常好,支持自定义的格式化参数也很丰富,在此做一个推荐。 1.首先在插件中心安装这款插件:SystemVerilogandVerilogFormatterSystemVerilogandVerilogFormatter-VisualStudioMarketplace2.下载verible。verible是谷歌提供的一块verilog工具,我们主要使用它的代码格式化工具。https://github.com/google/verib