RST_n的问题】的更多相关文章

 有一个灰常郁闷的问题... module CLK_Generater(                    input        CLOCK_100,                    input        RST_n,                    input        Key,                    output    reg    [3:0]    CLK_DivChoose, );reg     [19:0]    count;        …
module pmodenc( clk, rst_n, A, B, BTN,// A_Debounce,// B_Debounce,// BTN_Debounce,// Rotary_right,// Rotary_left LED); input wire clk,rst_n; input wire A,B,BTN;// output wire A_Debounce,B_Debounce,BTN_Debounce;// output wire Rotary_right,Rotary_left;…
module xuanpin #(parameter N=25)(clk,clr,key_in_f,key_in_z,f_out);input clk,clr,key_in_f,key_in_z;output reg f_out;reg clk0,clk1,clk2,clk3,clk4,clk5,clk6,clk7;wire key;wire key_z;reg[8:0] cnter0;reg[3:0] cnter1,cnter2,cnter3,cnter4,cnter5,cnter6,cnte…
module spi_25M(input clk,input rst_n,output reg sdin,output reg sclk,output reg cs);reg [7:0]cnt;reg[4:0]state;reg[15:0]data; /*always@(clk) if(!rst_n)begin sclk<=1; cnt<=0;data=16'b000111_1111_000000;end else if(cs==0)begin sclk<=!sclk; if(cnt==…
module qin(input clk,output reg beep,input [3:0] col,output [3:0] row_data,output [7:0]out ,input rst_n);wire [3:0] key;wire en;parameter STOP=0, DOD=47708,//262, RED=42516,//294, MD=37876,//330, FAD=35816,//349, SOD=31886,//392, LAD=28408,//440, SID…
先讲讲里面的矩阵键盘,矩阵键盘列有下拉电阻,默认全为0000,默认行输入为1111,当有按键按下的时候,列输入会被拉高,这时控制行的输出做行扫描,电子琴用key_flag_r0电平作为使能,这里用key_flag消抖后与键值进行按位与,作为相应按键的判断条件. module juzhen(input clk,input rst_n,input [3:0] col_data,output reg [3:0] row_data,output key_flag, //the mark of key i…
//第一个CS变低的时候要sclk为高电平,第一个跳变沿进行赋值 module spi(input clk,input rst_n,output reg sclk,output reg cs,output reg sdin);reg [2:0]cnt;reg [5:0]state;reg[1:0]s;reg[7:0] sanjiao_out; reg[7:0] num; always@(negedge cs or negedge rst_n) begin if(!rst_n) begin num…
RTL结构图 采集模块运用SPI 通讯 MISO方式收集数据 module ad_collect(input sddata,input rst_n,output reg cs,output reg sclk,input clk,output [7:0]seg_data,output done); reg [7:0]cnt;reg[4:0]state;reg[7:0]data;reg rdone; always@(posedge clk or negedge rst_n ) begin if(cs…
芯航线--普利斯队长精心奉献   实验目的: 1.实现FPGA驱动数码管动态显示: 2.使用In system sources and probes editor工具,输入需要显示在数码管上的的数据,数码管显示对应数值. 实验平台:芯航线FPGA核心板.数码管_VGA_PS2模块 实验原理:     电子设计系统中常用的显示设备有数码管.LCD液晶以及VGA显示器等.其中数码管又可分为段式显示(7段.米字型等)以及点阵显示(8*8.16*16等),LCD液晶的应用可以分为字符式液晶(1602.1…
芯航线--普利斯队长精心奉献   实验目的: 1.复习按键的设计 2.用模块化设计的方式实现每次按下按键0,4个LED显示状态以二进制加法格式加1,每次按下按键1,4个LED显示状态以二进制加法格式减1 实验平台:芯航线FPGA核心板 实验原理:         在上一讲中设计并验证了独立按键的消抖,这里基于上一讲的按键消抖模块来实现一个加减法计数器,并以此学习模块化的设计方式.     在设计过程中,相对大一点的工程经常通常不会写在一个设计文件中,通常会针对不同的功能设计出不同的子文件,最后在…
芯航线--普利斯队长精心奉献   实验目的: 1.复习状态机的设计思想并以此为基础实现按键消抖 2.单bit异步信号同步化以及边沿检测 3.在激励文件中学会使用随机数发生函数$random 4.仿真模型的概念 实验平台:芯航线FPGA核心板 实验原理:     按键在电子设计中使用的最多,从复位到控制设置均可以看到其身影.现在按键的功能也种类也越来越多,例如多向按键.自锁按键.薄膜按键等.普通按键其硬件示意图如图9-1所示. 图9-1 按键示意图 芯航线开发板所载的为两脚贴片按键,分别位于开发板…
芯航线--普利斯队长精心奉献   实验目的:1.学习状态机的相关概念 2.理解一段式.两段式以及三段式状态机的区别以及优缺点 实验平台:芯航线FPGA核心板 实验原理: 状态机全称是有限状态机(finite-state machine,缩写:FSM)是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型. 状态机分为摩尔(Moore)型有限状态机与米利(Mealy)型有限状态机.摩尔状态机输出是只由输入确定的有限状态机(不直接依赖于当前状态).米利有限状态机的输出不止与其输入有关还于它的…
芯航线--普利斯队长精心奉献   实验目的:掌握阻塞赋值与非阻塞赋值的区别 实验平台:无 实验原理:     阻塞赋值,操作符为"=","阻塞"是指在进程语句(initial和always)中,当前的赋值语句阻断了其后的语句,也就是说后面的语句必须等到当前的赋值语句执行完毕才能执行.而且阻塞赋值可以看成是一步完成的,即:计算等号右边的值并同时赋给左边变量.     非阻塞赋值,操作符为"<=","非阻塞"是指在进程语句(…
关于FGPA的复位 当初开始学FPGA的时候,总是疑惑:FPGA不是没有复位管教么,但总在always看到有复位信号.这个复位信号(我们暂且称为rst_n)从哪里来? 实际上是可以从两个方面获得的,这与我们的MCU一样. 上电自动复位 手动按键复位 考虑到系统的初始化可能需要一定的时间,需要写一段Verilog代码进行延时复位,这段代码综合后就是上电自动复位的过程,上电自动复位也要外部硬件提供一个低电平脉冲,第二种方法要求有按键复位的按键电路.作为一个正常的系统,上电自动复位和手动的按键复位都是…
一.SPI协议简要介绍 SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口.SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议.  SPI总线是Motorola公司推出的三线同步接口,同步串行3线方式进行通信:一条时钟线SCK,一条数据输入线MOSI,一条数据输出线MISO;用于 CPU与各种外…
转载自:http://blog.sina.com.cn/s/blog_4c270c730101f6mw.html 作者:白栎旸     断言assertion被放在verilog设计中,方便在仿真时查看异常情况.当异常出现时,断言会报警.一般在数字电路设计中都要加入断言,断言占整个设计的比例应不少于30%.以下是断言的语法: 1. SVA的插入位置:在一个.v文件中:                 module ABC ();                    rtl 代码        …
最近在使用Xilinx FPGA验证项目,使用DCM将50M晶振分频得到20M时钟.但是下载代码到板子上验证,发现板子完全不工作. 然后 测量时钟,发现根本就没有20M时钟.查找资料,以及跟以前项目对比,DCM的使用没有错误. 项目中DCM的使用如下: DCM u_dcm_20m( .CLKIN (clk50m), .CLKFX  (clk20m), .RST (rst_n  ), .LOCKED  (locked ) ); defparam u_dcm_20m.CLKFX_DIVIDE = 5…
`ifndef MY_DRIVER__SV `define MY_DRIVER__SV class my_driver extends uvm_driver; function new(string name = "my_driver", uvm_component parent = null); super.new(name, parent); endfunction extern virtual task main_phase(uvm_phase phase); endclass…
module dut(clk, rst_n, rxd, rx_dv, txd, tx_en); input clk; input rst_n; :] rxd; input rx_dv; :] txd; output tx_en; :] txd; reg tx_en; always @(posedge clk) begin if(!rst_n) begin txd <= 'b0; tx_en <= 'b0; end else begin txd <= rxd; tx_en <= rx…
Verilog代码规范I "规范"这问题 "规范"这个富含专业气息的词汇(个人感觉),其实规范这种东西,就是大家都约定熟成的东西,一旦你不遵守这个东西,专业人士就会觉得你不够专业,特别是程序开发方面的问题. 为什么要规范呢?一方面能体现你足够专业,另一方面也是最重要的一方面,代码的规范性有利于开发交流,让代码的可读性大大增强,也有利于降低代码的出错率. 网上关于EDA设计方面的代码规范问题的资料,以前开发的时候都没有养成一个很好的代码规范,在大的项目工程中,这方面的…
在设计中运用红外遥控器可以很好的解决按键缺少的问题,还可以方便的控制产品. 红外发射部分: 红外发射管: 判断红外发射管的好坏 : 电路原理图: 接收部分: 传输的NEC协议: 本实验电路: verilog 程序: 发送程序: /********************************Copyright************************************** **----------------------------File information---------…
这里我们要验证一键两用的情况:点击与长击,单击与双击 代码: /********************************Copyright************************************** **----------------------------File information-------------------------- ** File name :key_function_2.v ** CreateDate :2015.03 ** Funtions…
按键在项目中应用还是很频繁的,这里主要介绍按键的几种用法. 1.按下一次有效:按下一次计数器增加一下. 2.按下连续有效:按下不松,计数器就一直增加. 3.按下无效,松开有效:按下时计数器值不变,按键释放的时候计数器增加一下. 4.一键多用:点击与长击,单击与双击:这个比较复杂. 本试验只学习使用前3种作用.代码如下: /********************************Copyright************************************** **------…
实际系统中常用的按键大部分都是轻触式按键,如下图所示.该按键内部由一个弹簧片和两个固定触点组成,当弹簧片被按下,则两个固定触点接通,按键闭合.弹簧片松开,两个触点断开,按键也就断开了.根据这种按键的机械特性,在按键按下时,会先有一段时间的不稳定期,在这期间,两个触点时而接通,时而断开,我们称之为抖动,当按键大约按下20ms后,两个触点才能处于稳定的闭合状态,按键松开时和闭合时情况类似.而我们的FPGA工作在很高的频率,按键接通或断开时任何一点小的抖动都能轻易的捕捉到,如果不加区分的将每一次闭合或…
一.格雷码 格雷码的优点主要是进位时只有一位跳变,误码率低. 1.二进制转格雷码 我们观察下表: 二进制码 格雷码 00 00 01 01 10 11 11 10 二进制码表示为B[],格雷码表示为G[],则有 G(i) = B(i),i为最高位 G(i-1) = B(i) xor B(i-1),i非最高位 用verilog可以这样写 :] bin; :] gray; ; always @(posedge clk or negedge rst_n) begin if (!rst) gray <=…
芯航线--普利斯队长精心奉献   实验目的:1.掌握BCD码的原理.分类以及优缺点          2.设计一个多位的8421码计数器并进行验证          3.学会基本的错误定位以及修改能力      实验平台:无 实验原理:     BCD码(Binary-Coded Decimal)又被称为二进码十进数.二-十进制代码是一种十进制的数字编码,用4位二进制数来表示十进制数中的0~9个十个数之一.BCD编码又可以分成有权码和无权码两种,其中有权码如:8421码.2421码以及5421等…
芯航线--普利斯队长精心奉献 实验目的:以计数器为例学会简单的时序逻辑电路设计 实验平台:芯航线FPGA核心板 实验原理: 时序逻辑电路是指电路任何时刻的稳态输出不仅取决于当前的输入,还与前一时刻输入形成的状态有关.这跟组合逻辑电路相反,组合逻辑的输出只会跟目前的输入成一种函数关系.换句话说,时序逻辑拥有储存元件(内存)来存储信息,而组合逻辑则没有. 计数器的核心元件是触发器,基本功能是对脉冲进行计数,其所能记忆脉冲最大的数目称为该计数器的模/值,常用在分频.定时等处.计数器的种类很多,按照计数…
基于线性序列机的TLC5620型DAC驱动设计 目录 TLC5620型DAC芯片概述:    2 TLC5620型DAC芯片引脚说明:    2 TLC5620型DAC芯片详细介绍:    3 TLC 5620型DAC接口时序:    4 TLC5620串行数字接口的关键时序参数:    5 芯航线ADDA模块TLC5620电路介绍:    6 线性序列机设计思想与TLC5620接口时序设计:    7 视频教程中的工程源码:    10 视频教程中的测试文件源码:    13 板级验证方法: …
前言:终于到了测试篇,不过悲剧了一下.按照之前<二>里面的思路,在顶层用一个复用器驱动读写独立模块的I2C总线确实失败.虽然综合过去了,不过警告里已经说明:底层的2个原本是inout三态口的数据线在顶层复用时候被综合成wire,这样在默认情况下顶层的inout总是输出有效,失去了三态口的作用.囧,看来为了测试I2C的写还是得把读模块并进去可避免这一尴尬…… 测试:DE2+Questasim10.0c+Q2_9.1: 日期:2013七夕夜 结果:以下2张图为仿真波形图与逻辑分析仪采样的时序波形图…
top testbench在top_tb中包含进所有的文件,将DUT放在top_tb中(例化DUT),连接好各个端口,提供clk时钟和rst_n复位信号.最主要的是要给组件中的虚接口设置接口,一般是给driver和monitor的虚接口例化接口.初始化run_test()使其自动启动UVM仿真.用config机制配置内部变量.如例: `timescale 1ns/1ps `include "uvm_macros.svh" import uvm_pkg::*; `include &quo…