技术应用

2人已关注

纳米网技术应用频道 — 提供技术应用领域最新资讯、技术文章和行业动态。

推荐 最新
技术应用技术

sv基础:timescale、timeunit、timeprecision

1. 前言 Verilog/System verilog 仿真中的时间单位/时间精度设置是保证仿真设置正确的重要手段,但是很多场景下却常常被忽视。设置不合理会导致诸多问题,例如延时不准确,时钟周期不对,打印信息不准确,验证用例耗费的时间特别长,多模块配合无法发现隐藏的问题。 因此,本文件将描述timescale、timeunit、timeprecision等概念,并描述如何正确地使用timesca

FPGA基础:一文吃透CRC算法(下)——CRC硬件加速原理深度解析

FPGA基础:一文吃透CRC算法(下)——CRC硬件加速原理深度解析

前言 在很多以太网、SATA 或其他高速接口项目中,我们经常会接触到 CRC(循环冗余校验)。通常,工程师会通过网站或软件工具生成一整套带异或操作的组合逻辑来实现 CRC 算法,而不去深入理解其原理——只知道可以这样用。事实上,在大多数情况下,确实不需要了解 CRC 的具体实现方法,这种黑盒化的使用方式在低频窄位宽场景下确实可行。 但是,当你的系统时钟非常高,例如 800MHz、1GHz,且数据位

三步就好,使用万用表来判断MOS管的好坏

三步就好,使用万用表来判断MOS管的好坏

你还分不清谐波失真、总谐波失真、总谐波失真加噪声吗?

你还分不清谐波失真、总谐波失真、总谐波失真加噪声吗?

什么是信号失真? 时域上测量系统的输出波形应该与输入波形精确一致,只是幅值放大,时间延迟,这称为不失真测量。 通常放大电路的输入信号是复杂的多频信号,如果放大电路对信号的不同频率分量的增益不同,或者相对相移发生变化,就使输出波形发生失真,前者称为幅度失真,后者称为相位失真,如果出现了与输入不同的频率成分,则称为频率失真。 谐波失真,英文全称Harmonic Distortion,简称HD。 总谐

基于FPGA的RGB565_YCbCr_Gray算法实现

基于FPGA的RGB565_YCbCr_Gray算法实现

  前面我们讲了基于FPGA用VGA显示一副静态图片,那么接下来我们就接着前面的工程来实现我们图像处理的基础算法里最简单的一个那就是彩色图像转灰度的实现。 将彩色图像转化为灰度的方法有两种,一个是令RGB三个分量的数值相等,输出后便可以得到灰度图像,另一种是转化为YCbCr格式,将Y分量提取出来,YCbCr格式中的Y分量表示的是图像的亮度和浓度所以只输出Y分量,得到的图像就是灰度图像了。我在这里选

学硬件设计,有什么书籍可以推荐?

一、基础理论知识 1)电路分析基础(李瀚荪),这本书是教材,对于底子薄的同学,还是建议先看看的,主要是一些电路分析的定理、转换方式等。 2)像微机原理、线性电子电路、非线性电子电路、高频电子线路这些教材都建议看看。 二、数字电路设计 推荐《数字电子技术基础》(第六版,阎石),数字电路基础是电子专业必修课,高校教材内容也都是大差不差的,也可以看华成英的第五版。 如果是走FPGA/CPLD路线,需要学

如何选到最优的载波组合?

如何选到最优的载波组合?

本文主要讲述如何选到最优的载波组合。 应用背景 随着5G多频段部署的深入,5G越来越多的频段投入商用,特别是热点区域常采用多频覆盖。商用终端的CA能力参差不齐,如何让终端在复杂的商用网络中发挥自己最佳的CA能力,带来最佳的感知体验,对于多载波选择性添加的需求日益突出。 原理介绍 对于支持CA能力的终端,需要从众多的小区中选择对于终端感知最优的载波组合,因此通过综合判决终端能力、业务方向、NR各频层

Clock_gating之浅见番外

Clock_gating之浅见番外

上次的Clock_gating之浅见的文章发表后,得到了一些热心朋友的反馈,这里就以下几个问题来做进一步的探讨: 1:clock gating max_fanout的限制 在DC里边的命令set_clock_gating_style有一个-max_fanout的选项,这个变量的意思是在创建clock-gating的时候,工具对clock-gating的fanout的一个限制,如果使用如下命令:

从 IP 开始,学习数字逻辑:FIFO 篇(上)

从 IP 开始,学习数字逻辑:FIFO 篇(上)

    学生期间,做的设计比较小或者偏向 demo 类型,那么 ip 核是会占据设计的很大一部分。但使用 ip 核本身对学习者来说就很有意义。通过 ip 的使用,会了解一个工程如何组织,如何阅读手册,如何通过仿真结果优化修改自己的设计。本系列就会通过使用一系列的基础 ip,讨论如何组织工程,阅读手册,编写基础的粘合逻辑,testbench 以及功能仿真。     使用 ip 对于数字逻辑方面的工

漫谈PCIe——BAR是什么

漫谈PCIe——BAR是什么

前言 对于主机而言,FPGA-PCIe 设备通过其 BAR(Base Address Register)被识别和访问。主机必须通过读写 BAR 所映射的地址空间,才能与 FPGA-PCIe 正确通信。这相当于将 FPGA-PCIe 内部的地址区域映射到主机的内存空间中,主机通过访问这段内存来完成数据收发。 readl(dif->bar0_mapped_addr + (offset<&l

为什么贴片电阻有字,而贴片电容没有?

为什么贴片电阻有字,而贴片电容没有?

当你拆开一台手机或电脑的主板,密密麻麻的贴片元件中,会发现一个有趣的现象:芝麻大小的贴片电阻上印着数字或字母,而同样体积的贴片陶瓷电容却“光秃秃”一片。为什么两者在标识上差异如此明显?这背后不仅是制造工艺的差异,更隐藏着电子元件设计的底层逻辑。 一、参数标识:电阻的“身份证”与电容的“隐身术” 1. 电阻的精确性要求 电阻是电路中的“交通警察”,负责精确控制电流和电压。其阻值范围极广(从1Ω到1

基于FPGA的VGA静态图片显示

基于FPGA的VGA静态图片显示

之前学习了半年的图像处理,所以计划将自己学过的几个图像处理的基础算法,做过的设计记录下来,在OpenHW论坛上发表,计划是这样的,用VGA做显示,使用PC端上位机通过串口发送一幅图片数据到FPGA开发板,FPGA接收数据并做处理最终发送给VGA显示屏显示,计划要写的算法有彩色图像转灰度、均值/中值滤波、Sobel边缘检测等。那么现在这是第一篇,先来写VGA显示的驱动、以及将一幅图片显示到VGA显示

手机续航总不够?功耗如何优化?

手机续航总不够?功耗如何优化?

移动式消费类产品设计中,功耗与续航始终是一个不小的挑战,以手机为例,电池容量越做越大,芯片功耗越来越低,但是手机续航时间并没有给消费者带来明显改善的体验。这主要在于手机新功能的加入,使得整机功耗增加,以至于大容量电池和低功耗IC延长的续航时间,又被新功能吃掉了。 功耗去哪了 比如当今流行的高刷新屏幕,早期的手机屏幕刷新率只有60Hz,现在90Hz、120Hz渐渐普及,对屏幕刷新率不敏感的用户现在也

芯片设计中的ESD防护设计介绍

芯片设计中的ESD防护设计介绍

本文主要讲述芯片设计中的ESD防护设计介绍。 在集成电路(IC)的设计、制造、封装、测试及应用全流程中,静电放电(ESD)是最常见且破坏性极强的隐患之一。ESD放电时间虽仅为纳秒至微秒级,但瞬时峰值电流可达数十安培,足以击穿芯片内部的精密结构。因此,芯片设计时需要集成专用的ESD防护电路,在输入/输出引脚、电源引脚附近形成低阻抗放电通路,将静电能量旁路到地,避免核心电路受损。 ESD防护设计的核心

鉴相/鉴频器(PFD)入门

鉴相/鉴频器(PFD)入门

本文将了解如何用鉴相/鉴频器(PFD)替代普通鉴相器,以扩展锁相环(PLL)的捕获范围。 在学习锁相环(PLL)基础原理时,我们通常从鉴相器如何引导环路实现锁定开始讲起。但在实际应用中,许多 PLL 电路都会选择鉴相 / 鉴频器(PFD),而非单纯的鉴相器。PFD 是一种常用的时序逻辑电路,能够同时检测两路输入信号的相位差与频率差。正如本文将要介绍的,它比仅检测相位差的电路拥有更宽的捕获范围。 普

单色OLED屏可移植多级菜单式GUI(2)-源码

在上篇文章中对多级菜单式GUI进行了简单的介绍,也给出了实际的演示视频,可以看出实际效果中我使用的文字作为选项,但不管是文字选项还是图标选项都是一样的,只不过是显示内容不一样而已,只需要更改一个函数就可以随意转换,今天讲讲源码实现相关的内容吧。 先贴上源码:(注意绘线、绘框、绘制位图提供的方法不一定可用,最好自己提供) `#ifndef __M_GUI_H define __M_GUI_H inc

Clock Gating之浅见

Clock Gating之浅见

当下这社会,没有几万个Clock Gating,出门都不好意思和别人打招呼! 现在的深亚纳米工艺的设计中,低功耗已经是一个日渐总要的主题了,尤其是移动市场蓬勃发展起来之后,功耗的要求越来越严格,据传,在高级的手机系统开发的过程中,系统架构的设计,已经精确到每一个服务模块的毫安时(mAH)的级别,所以如果你的芯片功耗控制不下来,很有可能会被手机生产厂家踢出局。 在低功耗的世界里,我们有很多方法可做

时序电路为什么综合成了latch

时序电路为什么综合成了latch

有群友提问,下面的代码为什么在DC里可以综合成DFF,而在FPGA上却综合成了latch。 always@(posedge clk, negedge rstn, negedge setn)  if(!rstn)    a <= 1'b0;  else if(!setn)    a <= 1'b1;  else    a <= a; 我们可以看到这段代码有两个特别之处: 同时有异

FPGA漫谈PCI-E:TLP包

FPGA漫谈PCI-E:TLP包

前言 本系列不会从零讲PCIe,也不会照搬规范条款,标准文档已经够厚,这里更像是一份工程师视角下的PCIe手边笔记 , 以更简洁的方式记录PCIe的关键点。 TLP包 由于PCIe-DMA的实现始终在事务层通过TLP包完成,因此深入理解TLP包的构成至关重要。 TLP包所在位置 在PCIe协议的传输层中,TLP包的结构相较于链路层与物理层的报文而言,最为简单清晰。 ‍ TLP的结构 TLP的结构

vcs+verdi仿真Verilog代码

vcs+verdi仿真Verilog代码

我们以一个简单的加法器为例,来看下如何用vcs+verdi仿真Verilog文件并查看波形。 源文件内容如下: //adder.v module adder(  input          clk,  input          rst,  input   [9:0]  A,  input   [9:0]  B,  output reg [10:0] C ); always @ ( pose