草庐IT

APB总线

APB总线信号:  APB总线状态机与读写Timing   IDIE是初始化态;SETUP是从机被PSELx选中以后进入的状态,只维持一个cycle,下一个周期的上升沿到ENABLE态;ENABLE要使PENABLEHIGH,同时如果没有继续transfer那么从ENABLE跳到IDIE,如果有继续transfer从ENABLE跳到SETUP(有点glitch可以接受);从SETUP到ENABLE调整期间所有信号(地址数据控制)都要保持稳定写  2个cycle进行一次transfer的timing;为了减低功耗,transfer结束后不会改变地址数据信号,除非下一次transfer开始。这实际

led跑马灯多种方法(移位法,位拼接法,调用模块法,位移及位拼接语法,testbench的理解,源文件的存储路径,计数器的个数,调用模块的方式)

  跟着教程写了几种方法,才发现自己写的虽然能实现,但比较繁琐。教程有三种方法:1.移位法,每次左移一位,相比我自己写的,优点是不用把每一种情况都写出来。但是需要考虑左移到最后一位时需要自己再写个赋值语句重新回到第一位。2.位拼接法,循环左移,每一次都把最后一位放到第一位,其他六位左移一位,克服了移位法的问题,简化了代码。3.调用已有模块法,调用4-16译码器刚好可以实现流水灯,需要额外的counter作为译码器的输入。移位法moduleled_run1(//移位法clk,reset,led);inputclk;inputreset;outputreg[7:0]led;reg[5:0]coun

11-verilog-有限状态机

有限状态机写RTL的时候,实现一个功能的时候有很多种方法将系统划分为多个状态,状态之间有状态的转移,第一步,第二步,,,,形成有限状态机流水线技术设计,从输入到输出有多个步骤有限状态机,状态是有限的,比如8个状态,16个状态等,在进行设计的时候,状态机的状态不要太多,状态超过10个,就会造成设计复杂度和验证复杂度都变高.有限状态机分类MooreFSM输出只与当前的状态有关,与输入没有关系MealyFSM输出不仅与当前的状态有关,还与输入有关MooreFSM-设计自动售货机分析输入输出信号自动售货机,输入的就是硬币,输出的是饮料和找零(确定输入,输出)假设饮料只有一种价格2.5元,输入的零钱只有

11-verilog-有限状态机

有限状态机写RTL的时候,实现一个功能的时候有很多种方法将系统划分为多个状态,状态之间有状态的转移,第一步,第二步,,,,形成有限状态机流水线技术设计,从输入到输出有多个步骤有限状态机,状态是有限的,比如8个状态,16个状态等,在进行设计的时候,状态机的状态不要太多,状态超过10个,就会造成设计复杂度和验证复杂度都变高.有限状态机分类MooreFSM输出只与当前的状态有关,与输入没有关系MealyFSM输出不仅与当前的状态有关,还与输入有关MooreFSM-设计自动售货机分析输入输出信号自动售货机,输入的就是硬币,输出的是饮料和找零(确定输入,输出)假设饮料只有一种价格2.5元,输入的零钱只有

通用8位SPI接口模块——verilog实现

本次设计一个八位的SPI的接口模块,可以修改输出的频率,也可以通过修改参数来设置通信模式。本模块是设定生成一个目标输出频率的二倍的计数器,然后通关计数的值来输出响应的信号,从而进行SPI通信。本模块既可以发送数据也可以接收数据,给Send_en信号使开始发送数据,在接收到8位数据后会生成Read_en信号。片选信号只设定了1位,但是可以通过简单的修改位宽来设置多位。一、模块代码`timescale1ns/1ps////////////////////////////////////////////////////////////////////////////////////Company:/

通用8位SPI接口模块——verilog实现

本次设计一个八位的SPI的接口模块,可以修改输出的频率,也可以通过修改参数来设置通信模式。本模块是设定生成一个目标输出频率的二倍的计数器,然后通关计数的值来输出响应的信号,从而进行SPI通信。本模块既可以发送数据也可以接收数据,给Send_en信号使开始发送数据,在接收到8位数据后会生成Read_en信号。片选信号只设定了1位,但是可以通过简单的修改位宽来设置多位。一、模块代码`timescale1ns/1ps////////////////////////////////////////////////////////////////////////////////////Company:/

VGA、TFT显示模块——verilog实现

这次设计一个VGA、TFT显示模块,其特点如下:行同步信号、场同步信号、数据有效信号的延迟数可调。(应用时方便与存储模块数据对齐)分辨率可以通过调整参数来改变。数据格式为RGR565,可简单修改位宽来修改成其他数据格式。TFT的接口时序和VGA的时序相似,但是TFT接口比VGA多了数据有效信号和背光信号。所以该模块可以用在TFT上,也可以用在VGA显示上。VGA时序RGB接口的TFT屏扫描方式和VGA(VideoGraphicsArray)标准类似,使用行列扫描的方式。在介绍TFT屏扫描原理之前,先来介绍下VGA显示器的扫描原理。在VGA标准兴起的时候,常见的彩色显示器一般由CRT(阴极射线管

VGA、TFT显示模块——verilog实现

这次设计一个VGA、TFT显示模块,其特点如下:行同步信号、场同步信号、数据有效信号的延迟数可调。(应用时方便与存储模块数据对齐)分辨率可以通过调整参数来改变。数据格式为RGR565,可简单修改位宽来修改成其他数据格式。TFT的接口时序和VGA的时序相似,但是TFT接口比VGA多了数据有效信号和背光信号。所以该模块可以用在TFT上,也可以用在VGA显示上。VGA时序RGB接口的TFT屏扫描方式和VGA(VideoGraphicsArray)标准类似,使用行列扫描的方式。在介绍TFT屏扫描原理之前,先来介绍下VGA显示器的扫描原理。在VGA标准兴起的时候,常见的彩色显示器一般由CRT(阴极射线管

ZYNQ基于DMA的串口传图

小梅哥的这个ZYNQ开发板上的DDR3位于PS侧,PL侧想要使用DDR3作为缓存的话,得通过HP接口来与PS侧的DDR3控制进行通信。本次实验在小梅哥OV5640工程的基础上,通过修改VDMA的S2MM端的模块而来的。将VMDA的帧缓存区设为1,关闭帧同步的功能后,其实和DMA差不多。一、需要自定义的ip核这里列出的为自己写的IP核。小梅哥的工程里还用到了其它的自定义的IP核,这里就不列出了。1、串口接收图像数据模块该模块调用了之前写的串口8位接收模块,详情可点击查看。此外,本模块还调用16位宽、深度为1024的带数据计数的普通FIFO核该模块主要的思想就是将接收到的两个8位的数据拼接位1个1

【牛客】8 企业真题

VL59 根据RTL图编写Verilog程序这题比较简单,照着写就好了。`timescale1ns/1nsmoduleRTL(inputclk,inputrst_n,inputdata_in,outputregdata_out);regdata_in_reg;always@(posedgeclk)beginif(~rst_n)begindata_in_reg1'b0;data_out1'b0;endelsebegindata_in_regdata_in;data_outdata_in_reg;endendendmoduleVL60 使用握手信号实现跨时钟域数据传输题目只给了一个模块的接口,实际