【代码】verilog之:电子钟】的更多相关文章

1. 概述 采用Xilinx HLS快速实现的部分并行,全流水的LDPC译码器. 环境:Vivado HLS 2018.2 码字:IEEE 802.16e 2/3A 算法:Min-Sum Algorithm 代码:https://github.com/cea-wind/hls_ldpc_dec/ 器件:xc7k160 使用方法: 1. 从GitHub上clone代码 2. 在终端运行命令 vivado_hls -f run_hls.tcl 3. 打开vivado hls GUI,找到生成的工程,…
00 一些前言 数字逻辑是计算机组成与体系结构的前导课,但是在两者的衔接之间并没有那么流畅,比如对面向硬件电路的设计思路缺乏.这篇总结是在数字逻辑和计组体系结构的衔接阶段进行的. 虽然这篇文是两门课的交接,也算是两个系列的一种过渡,但不代表我的数字逻辑部分就已经完成,这个系列后续会继续更新FPGA的小项目记录,以及阅读笔记等等. 本文主要是对于这个视频的笔记,我觉得很有用,加之此前我的实验报告由于课程关系不好直接往网上发,所以在这里整理一部分代码留作黑箱子.后续还会根据课程老师的要求对本文进行补…
功能:显示时分秒,能够设置时间. 实现:两个按键,一个进入设置,一个加数字.显示用LCD5110 用状态机实现,总共四种状态 idle(正常运行)——s_hour(时设置状态)——s_min(分设置状态)——s_sec(秒设置状态) 四种状态用set键循环切换,add键在后三种状态中可以对值进行加1操作. 代码如下,此处按键输入为消抖后的 需要注意的是时间运行时的判断阈值和按键设置时的判断阈值不同 /*-----------------------------------------------…
system verilog中新加了很多幅值语句,虽然都只适用于阻塞幅值,但是在某些场合中非常实用. 下面是一段有意思的代码,覆盖了一些用法. package definitions; typedef enum logic [:] {ADD,SUB,MULT,DIV,SL,SR} opcode_t; typedef enum logic {UNSIGNED, SIGNED} operand_type_t; typedef union packed { logic [:] u_data; logi…
Verilog代码规范I "规范"这问题 "规范"这个富含专业气息的词汇(个人感觉),其实规范这种东西,就是大家都约定熟成的东西,一旦你不遵守这个东西,专业人士就会觉得你不够专业,特别是程序开发方面的问题. 为什么要规范呢?一方面能体现你足够专业,另一方面也是最重要的一方面,代码的规范性有利于开发交流,让代码的可读性大大增强,也有利于降低代码的出错率. 网上关于EDA设计方面的代码规范问题的资料,以前开发的时候都没有养成一个很好的代码规范,在大的项目工程中,这方面的…
Verilog HDL基础语法讲解之模块代码基本结构   本章主要讲解Verilog基础语法的内容,文章以一个最简单的例子"二选一多路器"来引入一个最简单的Verilog设计文件的基本结构. 以下为本章中例子中的代码: 01    /*======================================= 02    *    file neme : mux2.v 03    *    author    :    小梅哥 04    *    Verison    :    …
消失了好久,没有写文章,也没有做笔记,因为最近再赶一个比赛,时间很紧,昨天周六终于结束了,所以趁着周末这会儿有时间,写点东西,记录下来.首先我学习FPGA才一年多,我知道自己没有资格谈论一些比较深层次的问题,对于这个行业来说可能我才是一直脚踩在门外面.所以这篇文章是写给一些刚开始学习FPGA.Verilog HDL的同学,我看过一些大神写的代码,然后尽量模仿大神写法,经过好几个大神的影响和自己的习惯摸索,最终算是总结出了一套自己的代码书写风格,当然我的代码风格还是一直在进化中.现在将自己的一些经…
HD,3G视频数据中行号的插入方法---Verilog代码实现 行号的生成: `timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: chensimin // // Create Date: 2019/01/14 16:57:42 // Design Name: // Module Name: l…
前言 sublime默认的verilog自动补全十分垃圾,不过提供了代码段这个功能,你可以自己写个重用率高的代码段减轻工作量.写个模板当tb也很爽啦. 流程 1.打开user文件夹,创建verilog文件夹,创建的代码段放置在此文件夹中: 2.在sublime中选择添加新的snippet: 3.举个栗子:文件后缀名为sublime-snippet,否则自动补全不生效: 注意:其中,content中由CDATA包裹起来的部分是我们要插入的代码片段,可选. tabTrigger是我们tab键触发的自…
串口接收端verilog代码分析 `timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: chensimin // // Create Date: 2018/05/23 16:14:30 // Design Name: // Module Name: uart_rx // Project Name…
串口发送端verilog代码分析 `timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: chensimin // // Create Date: 2018/05/23 13:59:45 // Design Name: // Module Name: uart_tx // Project Name…
verilog 代码分析与仿真 注意:使用vivado 自带的仿真工具, reg和wire等信号需要赋予初始值 边沿检测 module signal_test( input wire cmos_pclk_i, input wire cmos_vsync_i ); // 上升沿捕获 :] vsync_d; wire vsync_start; wire vsync_end; always @(posedge cmos_pclk_i) begin vsync_d <= {vsync_d[], cmos…
1--verilog HDL 语言的预编译指令作用:指示在编译verliog HDL源代码前,需要执行哪些操作. 2--模块内容是嵌在module 和endmodule两个语句之间.每个模块实现特定的功能,模块可进行层次的嵌套,因此可以将大型的数字电路设计分割成大小不一的小模块来实现特定的功能,最 后通过由顶层模块调用子模块来实现整体功能. 3--模块包括接口描述部分和逻辑功能描述部分.这可以把模块与器件相类比. 4-verilog hdl语言支持的并行语句主要有一下四种: 连续赋值语句 模块实…
总线读写---verilog代码 `timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: chensimin // // Create Date: 2017/11/16 17:32:35 // Design Name: // Module Name: read_and_write // Proje…
FIFO 的控制逻辑---verilog代码 //fifo的例化 wire fifo_full; wire fifo_empty; : ] fifo_dout; :]rd_data_count; :]wr_data_count; fifo_generator_0 U1 ( .rst(reset_fifo), .wr_clk(rx_usrclk), // input wire wr_clk .rd_clk(tx_usrclk_1), // input wire rd_clk .din(din),…
信号滤波模块verilog代码 `timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: chensimin // // Create Date: 2017/12/14 17:15:25 // Design Name: // Module Name: glitch_filter_1 // Proje…
verilog代码 想法验证---与寄存器输出有关 1. module test_mind( input wire clk, input wire reset, input wire i, output wire A, output wire B ); reg reg_A; always @ (posedge clk or negedge reset) if(reset) reg_A <= 'b0; else if(i) reg_A <= 'b1; else reg_A <= 'b0;…
时钟分频方法---verilog代码 本文以SDI播出部分的工程为例,来说明一种时钟分频的写法.SD-SDI工程中播出时钟tx_usrclk为148.5MHz,但tx_video_a_y_in端的数据采样与tx_ce(门控时钟)有关.通过对tx_usrclk时钟进行分频,5clocks---6clocks---5clocks---6clocks,得到tx_ce信号. verilog代码写法如下: :] tx_ce = 'b111; 'b0; :] tx_gen_sd_ce = 'b0000010…
不能够把时序图看的非常透彻,然后把时序图写成Verilog代码,有时候甚至搞不清楚信号之间的时序关系.…
2018.10.21 好久没写博客了,这段时间一直在学习一直在沉淀,然而发现学的越多会的更少,只能快马加鞭吧! 博主从大一暑假接触FPGA,到现在快一年半了,时间恍逝.刚开始入门也是用的quartus自带的编辑器,后来改用notepad++编写代码,界面比quartus简介好看.再后来或者最近几个月用gvim,刚开始看别人用,感觉这是神级别的操作,简直6到爆. 先来看一下大佬的神操作 我想信你也会惊讶,很崇拜.当然我也学会了,这种快捷命令缩短时间,减少了重复性编写,大大提高编写效率.但是遇到一个…
FIFO 很重要,之前参加的各类电子公司的逻辑设计的笔试几乎都会考到. FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据, 其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址. FIFO一般用于不同时钟域之间的数据传输,比如FIFO的一端是AD数据采集, 另一端是计算机的PCI总线,假设其AD采集的速率为…
Notepad++是一款精致小巧的编辑器,自带Verilog语法识别功能,插件也挺好用的.这里陈列一下我的设置. 版本:Notepad++ 7.6.6 ,32位 //========================================================================//==== 安装与Verilog设置//========================================================================1.…
FPGA边沿检测Verilog代码(上升沿,下降沿,双边沿) 实现思路:用两个一位寄存器直接异或可以实现 代码实现: ​ module edge_detect( input clk, input rst_n, input data_in, output raising_edge_detect, //上升沿标志位 output falling_edge_detect, //下降沿标志位 output double_edge_detect //双边沿标志位 ); //reg define reg d…
AXI总线slave模式下接收数据---verilog代码 `timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: chensimin // // Create Date: 2020/04/17 18:45:54 // Design Name: // Module Name: axi_slave_…
代码和硬件之间的映射关系是一个很奇妙的过程,也展现出人类的智慧.单片机内部的硬件结构都是固定的,无法改变,我们通过代码操作着寄存器的读写,来执行各种复杂的任务.FPGA的硬件结构并不像单片机一样是固定好的,而是由更加原始的基本逻辑单元构成,我们需要用HDL语言来描述我们要实现的功能,而并不需要关心硬件的结构是如何构建的,我们通过使用FPGA厂商的综合器来将HDL所描述的功能代码映射到我们的FPGA基本逻辑单元上,而这个映射的过程是综合器帮我们自动完成的,我们并没有直接用语言去操作这些基本逻辑单元…
给大家推荐一款网页版的 Verilog代码编辑仿真验证平台,这个平台是国外的一家开源FPGA学习网站,通过“https://hdlbits.01xz.net/wiki/Main_Page” 地址链接进入网页,在该网页上可以进行Verilog代码的编写.综合,而且最后还能够仿真出波形来验证设计代码的正确性,该验证平台是基于Icarus Verilog(简称iVerilog,比较著名的开源HDL仿真工具,也有对应的安装版本)的,让你随时随地只需登录网页就能够享受Verilog编程仿真的乐趣! 一.官…
大家可能会有这样的疑问,我们编写的Verilog代码最终会在FPGA上以怎样的映射关系来实现功能呢?我们以一个最简单的组合逻辑与门为例来向大家说明.RTL代码如下所示: //-------------------------------------------------- module and_logic( input wire in1 , input wire in2 , output wire out ); //out:输出in1与in2相与的结果 assign out = in1 & i…
https://mp.weixin.qq.com/s/ie0R3v60IcrI6beTXHrgSg   基于Intellj IDEA+Scala插件模式开发   因为Chisel内嵌于Scala,所以Chisel3的项目实际上是Scala的项目,构建使用sbt. 下面使用官方网站上面的例子Adder,创建第一个项目,并转换成Verilog语言的实现.   一. 创建一个基于Scala的项目 ​​   选择项目的存储位置,JDK, sbt和Scala的版本.版本之所以重要,是因为版本之间的差异很大…
前言 Verilog是一种硬件描述语言(HDL),该语言在Windows上有集成开发环境可以使用,如ModelSim,但ModelSim的编辑器不太好用因此笔者萌生了用Sublime Text3来编写Verilog的想法.下面我们将围绕着Sublime Text3搭建起一个简易的IDE, 我将尽量把步骤写的细致一点,这将会使整个过程看起来很繁琐,但这是值得的. 原材料 Sublime Text 3(访问密码:a7c6) icarus-verilog-on-windows (访问密码:7528)…
随着数字电路技术的发展,数字锁相环在调制解调.频率合成.FM 立体声解码.彩色副载波同步.图象处理等各个方面得到了广泛的应用.数字锁相环不仅吸收了数字电路可靠性高.体积小.价格低等优点,还解决了模拟锁相环的直流零点漂移.器件饱和及易受电源和环境温度变化等缺点,此外还具有对离散样值的实时处理能力,已成为锁相技术发展的方向. 所谓数字PLL,就是指应用于数字系统的PLL,也就是说数字PLL中的各个模块都是以数字器件来实现的,是一个数字的电路. 数字锁相环的优点是电路最简单有效,可采用没有压控的晶振,…