首页 > TAG信息列表 > CLK

ADC081S101_dirver

      module ADC081S101_dirver ( input clk, //系统时钟 input rst_n, //系统复位,低有效 output reg adc_cs, //SPI总线CS output reg adc_clk, //SPI总线SCK input adc_dat, //SPI总线SDA output reg adc_done, //ADC采样完成标志 output reg [7:0] a

触发器和锁存器例子

编写 Verilog 代码以使用锁存器和触发器捕获下面的输入,并绘制每个的时序输出。 //purposely coding latch   always @(clk or input) if(clk == 1'b1) Q_latch <= input;   //flip flop  always@(posedge clk) Q_flop <= #1 input;   锁存器和触发器的输出在

UVM tb top

UVM tb architecture TestBench 顶部是模块,它连接 DUT 和 Verification 环境组件。 典型的 Testbench_top 包含: DUT instance interface instance run_test() method virtual interface set config_db clock and reset generation logic wave dump logic module tbench_top;

HDLBits答案——Verification: Writing Testbenches

1 clock module top_module ( ); reg clk; dut U1(.clk(clk)); initial begin clk = 0; end always begin #5; clk = ~clk; end endmodule 2 Tb/tb1 module top_module ( output reg A, output reg B

posedge clk 和 negedge clk

我们在程序块的事件控制中使用“'always @(posedge <signal>)”或“always @(negedge <signal>)”。但是posedge和negedge是什么意思呢? posedge means 0->1, 0-> x, 0-> z, x->1, z->1negedge means 1->0, x->0, z->0, 1->x, 1->z 请注意,如果希望边缘敏感的“always”块对

initial 和 always什么时间开始执行?

“initial”程序块在时间 0 开始执行,并在其所有可执行语句完成时结束。它只执行一次。而“always”块在模拟过程中不断执行,并且仅在仿真完成时结束。initial块没有触发点。它们只是在时间 0 开始执行。“always”块有一个触发点触发块的执行,它一直在等待触发点触发并执行。请注意,

数字电路设计组合循环

问题 今天在做一个小设计的时候遇到一个问题,设计的目的是实现串行计算2的补码,用mealy型状态机实现: 在rtl coding时如果组合逻辑输出用这样的写法,仿真就会报错 这里modelsim卡在循环了,看进一步的描述 这里解释了原因是产生了组合循环或者latch锁存器中有竞争条件,导致仿真器无法

XILINX KU系列三速以太网IP核RGMII时序约束方法

1概述 基于RGMII时序广泛应用于以太网通信中,基于XILINX的三速以太网时序分析,不同的XILINX系列方法不一样。当使用2路以上以太网通信,KU系列FPGA的MAC核需要进行修改,以支持2路以太网和满足时序要求。以下笔者对修改的部分进行说明,希望对广大开发者有所帮助,如果有不对的地方欢迎指针

IC笔试题

单选题(每题2分 共20题) 1.状态机的编码风格包括一段式、两段式和三段式,下列描述正确的是( ) A一段式寄存器输出,易产生毛刺,不利于时序约束; B二段式组合逻辑输出,不产生毛刺,有利于时序约束; C三段式寄存器输出,不产生毛刺,有利于时序约束; D所有描述风格都是寄存器输出,易产生毛刺,有利于时序

常见手撕题

[数字IC手撕verilog]常见手撕题 序列检测 状态机 牛客VL25 输入序列连续的序列检测 // mealy method `timescale 1ns/1ns module sequence_detect( input clk, input rst_n, input a, output reg match ); parameter idle = 4'd0, s0 = 4'd1, s1 =4'd2, s2 =4'd3, s3 =4

verilog中testbench仿真时钟的生成

一、普通时钟信号: 1、基于initial语句的方法: parameter clk_period = 10; reg clk; initial begin clk = 0; forever #(clk_period/2) clk = ~clk; end 2、基于always语句的方法: parameter clk_period = 10; reg clk; initial clk = 0;

锁相环(倍频,分频,利用开发板固有频率+内部专用电路 产生特定需求的时钟信号)

  一般来说,开发板的时钟是由板上的晶振产生的,频率大部分是固定的,但是我们在应用中有时候需要其他频率的时钟信号。为了解决这个问题,FPGA内部会留有专门的设置电路——时钟管理单元(硬件资源),利用已有的时钟信号来产生其他的时钟信号。   比如晶振50MHz,我们需要125MHz的时钟信号,

Testbech的一些技巧

1.基本概念 Testbech是一种验证的手段,但是在软环境中没有激励输入,也不会对你设计的输出正确性进行评估。那么此时便有一种,模拟实际环境的输入激励和输出校验的一种“虚拟平台”的产生。在这个平台上你可以对你的设计从软件层面上进行分析和校验,这个就是testbench的含义。 2.

彻底理解DDS(信号发生器)的fpga实现(verilog设计代码)

DDS(Direct Digital Synthesis)是一种把一系列数字信号通过D/A转换器转换成模拟信号的数字合成技术。 它有查表法和计算法两种基本合成方法。在这里主要记录DDS查表法的fpga实现。 查表法:由于ROM查询法结构简单,只需要在ROM中存放不同相位对应的幅度序列,然后通过相位累加器的输出对其

从计数器到可控线性序列机

设计定义      2. 设计输入 //亮0.25s,灭0.75s module counter_led_1( clk, rst, led ); input clk; input rst; output reg led; reg [25:0] cnt; parameter mcnt = 50_000_000; always@(posedge clk or neged

【FPGA学习笔记】VL40 占空比50%的奇数分频

设计一个同时输出7分频的时钟分频器,占空比要求为50% 注意rst为低电平复位       信号示意图:              clk_pos是周期为7且在clk_in上升沿翻转的信号, clk_neg是周期为7且在clk_in下降沿翻转的信号。   代码 复制代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

create_generated_clock 的用法

本文转载自:create_generated_clock_亓磊的博客-CSDN博客_create_generated_clock   文章目录 参数source和master_clock区别 create_generated_clock 介绍 create_generated_clock有多个master_clock的情况 create_generated_clock的时钟占空比不是50%的情况。   参数source

vcs xprop 仿真的一些理解

本篇随笔参照vcs user guide,并进行了一个小实验用以加深理解。 在芯片前端开发的后期,验证工程师需要进行xprop仿真验证,之前我只是简单的打开xprop的功能,去回归一些case看会不会fail并进行debug。但是对为什么要进行xprop验证理解的并不是很清楚。 下面是一些我自己的理解: 1. xprop

Verdi使用技巧——非连续有效信号量测方法

IC君的第42篇原创文章 (欢迎关注公众号 icstudy ,顺便在微信文章中点点广告) 上一篇文章IC君跟大家分享了Verdi使用技巧——连续有效信号量测方法。有不少网友在文章后留言或者微信给我留言,提供了一些其它方法。不得不说广大人民群众的智慧才是无穷无尽的,大家一起交流才能取得更大的

【FPGA学习笔记】VL26 含有无关项的序列检测

描述 请编写一个序列检测模块,检测输入信号a是否满足011XXX110序列(长度为9位数据,前三位是011,后三位是110,中间三位不做要求),当信号满足该序列,给出指示信号match。 程序的接口信号图如下:     程序的功能时序图如下: 请使用Verilog HDL实现以上功能,并编写testbench验证模块的功能。

MCDF实验1

​ 目录 从Verilog到SV的进场 任务task 和 函数function 数组的使用 验证结构 从Verilog到SV的进场 1. 修改tb1.v 为 tb1.sv ,编译仿真,查看仿真行为是否同tb1.v的仿真行为一致?这说明了什么呢? 没有变化,仿真行为一致,说明 .sv文件的编译和   .v文件一样 2. 将tb1.sv中的信号变量类

使用pll锁相环注意

1.   如果通过外部引脚引进来,注意,比如你需要一个100MHz和一个19MHz的时钟,CLK100M是连接引脚F17的端口,然后CLK100M为clk_in1 clk_out1和clk_out2两个输出,一个100M,一个10M,只能用clk_out1这个100M的时钟,不能直接用CLK100M这个端口,如果用了,布线会报错,说明你的CLK100M不是简单端口而应

特定周期的时钟驱动应该怎么设计(设计时钟?设计使能)

在逻辑设计的过程中,有时候需要特定周期的时钟信号来控制输出,fpga板上的时钟不符合要求,就需要自己来设计产生一个时钟。 常规思路是使用一个计数器来根据全局时钟产生特定周期的时钟(代码如下),然后使用这个sl_clk时钟接入其他电路触发器的clk接口来驱动其他电路。 reg [] counter

数码管动态显示Verilog实现(参考小梅哥教程)(视觉暂留)

  一个数码管有九个引脚,控制八段二极管的亮灭,用以显示需要的数字。 当有N个数码管时,一个一个控制的话需要N x 9 个引脚,消耗资源较多。 因此可以利用动态显示的方案通过人眼的视觉暂留特性达到静态显示的效果(动态显示周期<20ms),只需N+8个引脚。节省了大量资源。(动态静显)   数码

RAM的交替读写

​ 一、认识RAM RAM的分类比较多,单口RAM,双口RAM等等,详细的不再介绍。这里使用的是simple dual port RAM。本次实验的内容是RAM的交替读写,RAM的读写位宽和深度都设置为256x8来完成这部分的内容。 二、 调用RAM ip并按照上述要求进行设置 设置过程如下几个图: 在summary界面中划