草庐IT

通过verilog实现模可变计数器的设计

实验要求:        (一)实验目的(1)掌握组合逻辑电路和时序电路的 FPGA实现方法;(2)熟悉EDA开发板和开发软件的使用方法;(3)学习静态数码管的使用和7段数码显示译码器设计;(4)掌握时钟在时序电路中的作用;(5)掌握分频电路的实现方法。(二)实验要求设计BCD计数器,可任选模的大小(最大模值至少3位),实验要求:(1)计数结果用3位数码管显示,显示BCD码;(2)给出此项设计的仿真波形;(3)选择实验电路验证此计数器的功能。(4)设计模值可变的输入端口,通过输入模值和设置信号改变计数器模值(5)设置涉及1个开关和一个按键,开关作为使能控制,按键作为异步清0。(6)带有进位输出

彩色图像灰度化 (RGB ⇒ Gray )(RGB ⇒ YUV)(Verilog)

简介:    把一个彩色图像,也称为RGB(红,绿,蓝)图像转化为灰度图像的行为称为彩色图像灰度化处理。也就是由原来的三个通道RGB转化为一个通道YCrCb(从三个亮度值转换为一个亮度值),也即YUV(亮度,饱和度)的过程。常见的24位深度彩色图像RGB888中的每个像素的颜色由R、G、B三个分量决定,并且三个分量各占1个字节,每个分量的变化范围是0~255。而灰色图像是一种特殊的彩色图像,其一个像素点的变化范围是0~255,所以在进行图像处理的过程中,用灰度图像会比RGB图像少了很多计算量。想要进行彩色图像灰度化处理,有4种方法,以下会一一讲解。加权平均法:    这也是彩色图像灰度化处理最

彩色图像灰度化 (RGB ⇒ Gray )(RGB ⇒ YUV)(Verilog)

简介:    把一个彩色图像,也称为RGB(红,绿,蓝)图像转化为灰度图像的行为称为彩色图像灰度化处理。也就是由原来的三个通道RGB转化为一个通道YCrCb(从三个亮度值转换为一个亮度值),也即YUV(亮度,饱和度)的过程。常见的24位深度彩色图像RGB888中的每个像素的颜色由R、G、B三个分量决定,并且三个分量各占1个字节,每个分量的变化范围是0~255。而灰色图像是一种特殊的彩色图像,其一个像素点的变化范围是0~255,所以在进行图像处理的过程中,用灰度图像会比RGB图像少了很多计算量。想要进行彩色图像灰度化处理,有4种方法,以下会一一讲解。加权平均法:    这也是彩色图像灰度化处理最

基于FPGA的FSK调制解调系统verilog开发

目录1.算法仿真效果2.verilog核心程序3.算法涉及理论知识概要4.完整verilog1.算法仿真效果VIVADO2019.2仿真结果如下:2.verilog核心程序moduleFSK_modulator(inputbb_clk,inputbit_in,input[15:0]cnt0,cnt1,input[7:0]step0,step1,outputreg[11:0]sin,cos);wire[11:0]sin_w,cos_w;always@(posedgebb_clk)sinv_long_w)bit_out3.算法涉及理论知识概要   频移键控是利用载波的频率变化来传递数字信息。数字频

verilog中的可综合和不可综合语句总结

Verilog是描述硬件电路的,它是建立在硬件电路的基础上的。有些语法结构是不能与实际硬件电路对应起来的,也就是说我们在把一个语言描述的程序映射成实际硬件电路中的结构时是不能实现的。task和function都是可综合的,不过综合出来的都是组合逻辑电路。要想可综合,task和function内部必须是组合逻辑。循环语句(repeat、while、for)也可以用于可综合电路设计,当采用循环语句进行计算和赋值操作时,可以综合得到逻辑电路。 verilog中可综合语句:input、output、parameter、reg、wire、always、assign、begin..end、case、pos

(数字逻辑笔记)用Verilog实现一个简单ALU(组合逻辑)

实验描述:输入:两个4位二进制数,代表两个操作数A,B;一个3位控制信号operation,代表ALU要进行的运算。本实验中,ALU可以实现8种运算:输出:4位结果,1位进位operation|F000|A+B001|A-B010|B+1011|B-1100|NOTA101|AXORB110|AANDB111|AORB实现代码:/**********************ByVastCosmic*2021/12/26*********************/moduleALU(A,B,operation,result,cout);input[3:0]A; input[3:0]B; inpu

基于ADS软件的Verilog-A建模

前言笔者最近需要用ADS进行建模操作,因此学习了一些Verilog-A的知识,浅浅记录一下建模流程。1.在ADS软件中使用Verilog-A建模流程在ADS软件中可以直接创建Verilog-A面板,以对一个50欧姆的电阻建模为例,其代码为://VerilogAforMyLibrary2_lib,cell_1,veriloga`include"disciplines.vams"moduleR(p,n);electricalp,n;parameterrealR=50.0;analogV(p,n)+R*I(p,n);endmodule代码完成后需要创建模型对应的Symbol,返回原理图界面,在原理图

Verilog语言交通灯课程设计

一、设计思路1)设计一个十字路口交通灯控制器。交通灯处于东西大街和南北大街,如图2-1所示用寄存器模拟十字路口交通信号控制情况。当东西方向为绿灯时,南北方向为红灯,二南北方向为绿灯时,东西方向为红灯。东西向通行时间为11s,南北向通行时间为11s。                图2-1路口示意图               diagrammaticsketch2)东西、南北方向黄灯都亮3s。3)用高低电平分别表示灯灭灯亮,用计数器实现状态跳转。 二、设计原理1.首先了解实际交通灯的变化情况和规律。初始时东西向绿灯,g1输出高电平,南北向红灯,r2输出高电平。12个时钟脉冲后,原绿灯方向变为黄

IIC通信协议详解 & PCF8591应用(Verilog实现FPGA)

IIC通信协议详解&PCF8591应用(Verilog实现/FPGA)该文章结合PCF85918-bitAD/DA模数/数模转换器来详细介绍IIC通信协议,尽量做到条理清晰,通俗易懂。该文图片均从PCF8591手册中截取,一定程度上引导读者学习阅读datasheet。之后可能会更新如何将IIC的Verilog实现变为一个IP核,并在pynq-Z2板子上使用。1.PCF8591引脚2.功能介绍2.1地址位在I2C总线系统中,每个PCF8591设备都通过发送一个有效地址来激活。地址由固定部分和可编程部分组成。可编程部分必须根据地址引脚A0、A1和A2进行设置。在I2C总线协议中,地址必须始终作为起

day10-verilog---模块的调用,任务和函数

模块的调用(上层模块对底层模块的调用)在做模块划分时,通常会出现这种情形,某个大的模块中包含了一个或多个功能子模块,verilog是通过模块调用或称为模块实例化的方式来实现这些子模块与高层模块的连接的调用模块实例化的一般形式为:();其中参数列表是传递到子模块的参数值,参数传递的典型应用是定义门级时延。信号端口可以通过位置或名称关联,但是关联方式不能够混合使用名称关联&位置关联定义模块:moduleDesign(端口1,端口2,端口3...)位置关联:引用时,严格按照模块定义的端口顺序来连接,不用标明元模型定义时规定的端口名。Designu1(u1的端口1,u1的端口2,u1的端口3)名称关联