草庐IT

verilog-tutorial

全部标签

秒表设计(Verilog)--quartus13

秒表设计(Verilog)–quartus13本次实验的目的在于:(1)掌握利用硬件描述语言设计计数器、分频电路、译码电路的方法;(2)掌握利用例化语句设计顶层电路的方法。实验内容秒表设计:要求:(1)数码管显示;(2)能清零、暂停;(3)精确到1/100秒。实验设备(1)DE2-115实验板一块(2)高配置计算机一台实验原理电路框图1、分频电路设计、编译;设计方案:该模块有三个端口,分别是原始时钟输入端口、时钟清零信号输入端口、分频时钟输出端口。设置时钟清零信号为高电平时时钟清零,即输出的时钟为低电平。由于开发板提供的时钟信号频率为50MHz,而我们需要的为100Hz的时钟输入,所以分频系数

verilog实现bpsk的发送并与matlab的bpsk仿真进行对比

verilog的设计文件:moduleBPSK( inputclk, input[7:0]indata, outputreg[15:0]myout, outputwire[15:0]fir_out_my );wirem_axis_data_tvalid;wires_axis_data_tready;reg[9:0]addra=0;wire[19:0]outdata;fir_compiler_0fir_compiler_0( .aclk(clk),//inputwireaclk输入时钟 .s_axis_data_tvalid(1),//inputwires_axis_data_tval

verilog学习笔记6——锁存器和触发器

文章目录前言一、锁存器1、基本SR锁存器——或非门实现2、基本SR锁存器——与非门实现3、门控SR锁存器4、门控D锁存器二、触发器1、电平触发的RS触发器/同步SR触发器2、电平触发的D触发器/D型锁存器3、边沿触发的D触发器4、脉冲触发的RS触发器5、主从JK触发器三、D锁存器和D触发器的verilog实现四、边沿触发、脉冲触发、电平触发的区别前言2023.8.15一、锁存器1、基本SR锁存器——或非门实现信号高电平有效R:复位端S:置位端表达式:Q=S+R'Qn约束条件:SR=0,也就是SR不能同时为12、基本SR锁存器——与非门实现信号低电平有效R:复位端S:置位端表达式:Q=S'+RQ

Verilog 编程——事件/脉冲融合

引言再来记录一道今年海康的实习机试题目,这个相对简单很多。关于多个不同时到达的脉冲信号融合的问题。题目描述eof表示一件事情的结束脉冲,为表示两件不确定先后顺序的事情都已结束,需要将两个结束脉冲进行融合,输出一个脉冲,清完善以下代码: moduleevent_merge(input clk,input rst_n,input eof1,//脉冲信号,时长:1个clockinput eof2,//脉冲信号,时长:1个clockoutputwire eof);思路最简单的思路就是对脉冲计数,当然也要考虑事件脉冲同时到达的情况,以免出现bug。如有其他思路,欢迎评论区交流~

Verilog语法之任务Task与函数Function

目录1、概述2、任务task2.1、任务的定义2.2、一个task例子3、函数 function3.1、函数的定义3.2、一个function例子4、任务与函数的异同5、总结与参考1、概述    与C语言中的函数类似,在Verilog代码中,通过把代码分成小的模块或者使用任务(task)和函数(function),可把一项任务分成许多较小的、易于管理的部分,从而提高代码的可读性、可维护性和可重用性。        任务(task):一般用于编写测试模块,或者行为描述的模块。其中可以包含时间控制(如:#delays,@,wait);也可以包含input,output、inout端口定义和参数;也

Verilog基础(四)

四、Verilog语法1、空白符2、注释符:1、单行注释://2、多行注释: /*        */3、标识符和转义字符标识符用来命名信号、模块、参数等,可以是任何字母、数字、$符号以及下划线的组合,标识符区分大小写,并且第一个字符必须是英文字母或下划线4、关键字5、数据类型1、数值Verilog的数值状态有四种,在逻辑数值中,x和z都不区分大小写。状态含义0低电平、逻辑0、假1高电平、逻辑1、真X不确定状态或者未知逻辑Z高阻态在数值中,下划线符号“_”除了不能放在数值的首位外,可以随意在整型数与实例数中,他们对数值的大小没有改变,只是为了提高可读性。整数的表示形式:+/-’其中,“+,-”

Verilog 学习笔记(一)模块例化

   1.单个模块的例化verilog中模块的例化有两种方式,一种是基于端口位置来例化模块,另一种则是根据端口名称来例化。首先介绍第一种基于端口位置来例化。在此之前,我们先给出一个简单的模块如下: 上图中的mod_a模块声明如下:modulemod_a(output,output,input,input,input,input);为了在模块top_module例化上面的模块,我们首先声明top_module。moduletop_module(inputa,inputb,inputc,inputd,outputout1,outputout2);     采用基于端口位置的例化方法,要注意例化时连

Verilog基础语法(4)之模块和端口及其例化和处理

一、模块与端口1、模块Verilog进行FPGA/IC设计值,通常划分为各个子模块,木模块之间可能相互例化,并在顶层统一例化,并连接成一个顶层模块文件。基本的模块模板:modulemodule_name( inputi_clk, inputi_a, input[3:0]i_b, inputi_en, outputo_out, inout[3:0]o_c //yourinput/ouput/inoutports);//yoursequentiallogicalways@(posedgei_clk)begin//yoursequentiallogicend//yourcombinationall

【FPGA实现三态门(inout)Verilog代码详解】

【FPGA实现三态门(inout)Verilog代码详解】三态门(tristategate)是在数字电路中使用频率较高的一种逻辑门,其特点是输出端具有三种可能的状态:高电平、低电平和高阻态。在实际应用中常常用于多个设备共享同一个总线的情况下,有效地防止输出口相互影响、产生干扰等问题。本文将介绍如何使用Verilog语言来实现三态门。首先,需要清楚地知道什么是inout类型的端口。它是一种既能作为输入端,也能作为输出端的端口类型,可以与其他模块共享同一信号线。在Verilog中,声明inout型端口时需要使用关键字“inout”。下面通过示例代码来演示如何实现一个inout型的三态门。modul

二、Verilog基础语法学习

一、Verilog基础知识1、Verilog的逻辑值我们先看下逻辑电路中有四种值,即四种状态:逻辑0:表示低电平,也就是对应我们电路的GND;逻辑1:表示高电平,也就是对应我们电路的VCC;逻辑X:表示未知,有可能是高电平,也有可能是低电平;逻辑Z:表示高阻态,外部没有激励信号是一个悬空状态。 2、Verilog的标识符    标识符(identifier)用于定义模块名、端口名和信号名等。Verilog的标识符可以是任意一组字母、数字、$和_(下划线)符号的组合,但标识符的第一个字符必须是字母或者下划线。另外,标识符是区分大小写的。不建议大小写混合使用,普通内部信号建议全部小写,参数定义建议