![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Verilog
tomorrowNeverComes
壁立千仞 无欲则刚
展开
-
verilog中reg和wire类型的区别
verilog中reg和wire类型的区别2010-10-05 08:55 reg相当于存储单元,wire相当于物理连线 Verilog 中变量的物理数据分为线型和寄存器型。这两种类型的变量在定义时要设置位宽,缺省为1位。变量的每一位可以是0,1,X,Z。其中x代表一个未被预置初始状态的变量或者是由于由两个或多个驱动装置试图将之设定为不同的值而引起的冲突型线型变量。z代表高阻状原创 2017-07-29 17:45:12 · 1255 阅读 · 0 评论 -
基于nios II的verilog VGA字符显示控制
原文引自:http://blog.ednchina.com/chactor/185060/message.aspx 在本文中介绍一种基于Nios II的VGA字符显示控制,可以显示所有ASCII字符,显示图像可更改,便把分辨率改成了32*24。 模块框图如下: VGA控制器的设计和显存(RAM)的设计与 基于Verilog的VGA显示控制 中的基本相同,只是显存用双口RAM替换了单口R原创 2017-07-29 17:46:03 · 1731 阅读 · 0 评论 -
verilog三段式状态机模版
时序电路的状态是一个状态变量集合,这些状态变量在任意时刻的值都包含了为确定电路的未来行为而必需考虑的所有历史信息。 状态机采用VerilogHDL语言编码,建议分为三个always段完成。这是为什么呢? 设计FSM的方法和技巧多种多样,但是总结起来有两大类:第一种,将状态转移和状态的操作和判断等写到一个模块(process、block)中。另一种是将状态转移单独写成一个模块,将状态的操作和判断原创 2017-07-29 17:45:57 · 2079 阅读 · 0 评论 -
verilog 顶层模块的实例
比如工程名为converter,顶层文件名为converter.v,子模块为sw.v,顶层文件架构为:module converte(reset,dte_xtc,mclk,rclk,cable_sel,code_sel,clk_sel,cts_s,dte_rts,llb,rlb,rcl,tclk,ets,rt,l,loop,hbe,ctso,dsro,dcdo,tst_led);input res原创 2017-07-29 17:45:54 · 29665 阅读 · 0 评论 -
verilog 入门教程
1.1 什么是Verilog HDL?1.2 Verilog的历史1.3 Verilog的主要描述能力2.1 Verilog-模块2.2 Verilog-时延2.3 Verilog-assign语句2.4 Verilog-initial语句2.5 Verilog-always语句2.6 Verilog的结构化描述形式2.7 Verilog-混合设计描述方式2.8 Verilog-设计模拟3.1 V原创 2017-07-29 17:45:51 · 3657 阅读 · 0 评论 -
组合逻辑电路和时序逻辑电路
组合逻辑电路和时序逻辑电路 2011年03月09日 星期三 09:54 P.M. 组合逻辑电路:任何时刻电路的输出仅与该时刻电路的输入有关的数字电路被称为组合逻辑电路。组合逻辑电路不含有反馈,不含有记忆单元,仅仅通过将若干门电路按照不同的方式连接来实现所需的逻辑功能。常见的有加法器、减法器、编码器、解码器、多路选择器等。使用Verilog HDL描述逻辑电路通常有3种表达方原创 2017-07-29 17:45:48 · 2896 阅读 · 0 评论 -
Verilog HDL 学习要点总结
原文转自: http://www.ninthday.net/2011/07/learning-verilog-hal-2.html 1、网络类型的变量不能储存值,而且它必须受到驱动器(例如门或连续赋值语句,assign)的驱动。如果没有驱动器连接到网络类型的变量上,则该变量就是高阻的,即其值为z。常用的网络数据类型包括wire型和tri型。这两种变量都是用于连接器件单元,它们具有相同的语法原创 2017-07-29 17:45:45 · 656 阅读 · 0 评论 -
Verilog新手误区
Verilog的两个误区:使用Reg类型还是Net类型:Reg类型只在过程块中被赋值;而Net类型则在过程块外面被赋值或者驱动.阻塞赋值和非阻塞赋值:Verilog中竞争发生的条件:两个或多个语句在执行顺序不同时导致不同的结果,则存在竞争.Nonblocking不是一个类型;Blocking赋值是一个单步过程,计算RHS,并更形LHS是不可中断的.七条准则:1.时序逻辑和锁存器,使用非阻塞赋值2.原创 2017-07-29 17:45:42 · 462 阅读 · 0 评论 -
verilog赋值:阻塞(=)和非阻塞(<=)赋值的不同
原文引自: http://www.cnblogs.com/zxl2431/archive/2010/09/25/1834856.html 在写组合逻辑电路的代码时,我发现书上例子大都用的"=";而在写时序逻辑电路代码时,我发现书上例子大都用的""。之前就知道在Verilog HDL中阻塞赋值"="和非阻塞赋值"有着很大的不同,但一直没有搞清楚究竟有什么不同,现在来慢慢的琢磨它。 对于我这原创 2017-07-29 17:45:39 · 990 阅读 · 0 评论 -
Verilog的可综合设计
目录 1、verilog的流行的两方面原因 2、 verilog与VHDL相比的优点 3、典型的verilog模块 4、verilog语法要点 一、verilog的流行的两方面原因 1它是cadence的模拟器verilog-XL的基础,cadence的广泛流行使得verilog在90年代深入人心; 2它在硅谷获得广泛使用; 二、verilog与VHDL相比的优点原创 2017-07-29 17:45:36 · 2223 阅读 · 0 评论 -
verilog对assign和always的一点理解
原文转自: http://blog.csdn.net/iamoyjj/article/details/3478321 assign 用于描述组合逻辑 always@(敏感事件列表) 用于描述时序逻辑 敏感事件 上升沿 posedge,下降沿 negedge,或电平 敏感事件列表中可以包含多个敏感事件,但不可以同时包括电平敏感事件和边沿敏感事件,也不可以同时包括同一个信号的上升沿和下降沿,原创 2017-07-29 17:45:33 · 3075 阅读 · 0 评论 -
对C语言开发者的Verilog开发指南实例
本文举例说明了如何用软件实现脉宽调制(PWM),如何将该设计转换成一个可以在FPGA中运行的逻辑块,并能利用存储器映射I/O接口通过软件完成对该逻辑块的控制。通过理解本文讨论的概念和内容,没有太多硬件知识的软件开发人员也能掌握在FPGA上开发硬件的技能。 在不远的将来,嵌入式系统设计师将能够根据哪个更有利于解决设计问题来自由选择硬件和软件方案。但直到现在,对于那些想学习硬件设计的软件工程师来说不原创 2017-07-29 17:45:30 · 442 阅读 · 0 评论 -
verilog基础——模块端口
模块 模块的定义以关键字module开始,模块名、端口列表、端口声明和可选的参数声明必须出现在其他部分的前面,endmodule语句必须为模块的最后一条语句。端口是模块与外部环境交互的通道,只有在模块有端口的情况下才需要有端口列表和端口声明。模块内部的5个组成部分是:变量声明、数据流语句、低层模块实例、行为语句块以及任务和函数。 端口 端口是模块与外界环境交互的接口。对外部环境来讲,模块原创 2017-07-29 17:45:27 · 1927 阅读 · 0 评论 -
verilog的数据类型
1 整数、实数和时间寄存器类型 整数是一种通用的寄存器数据类型,用于对数量进行操作,使用integer进行声明。 integer counter; //一般用途的变量用作计数器 initial counter = -1; //把-1存储到寄存器中 实数:实常量和实数寄存器数据类型使用关键字real来声明,可以用十进制或科学计数法来表示。实数声明不能带有范围,其默认值为0.如果将一个实数原创 2017-07-29 17:45:24 · 5738 阅读 · 0 评论 -
Verilog HDL语法基础
Verilog HDL语法基础(1)Verilog的词法约定1 Verilog是大小写相关的,其中的关键字全部为小写。2 空白符由空格、制表符、和换行符组成。3 单行注释以“//”开始,verilog将忽略此处到行尾的内容。多行注释以“/*”开始,以“*/”结束。多行注释不允许嵌套4 操作符有三种:单目操作符、双目操作符和三目操作符。5 数字声明Verilog中有两种数字生命:指明位数的数字和不指原创 2017-07-29 17:45:15 · 1196 阅读 · 0 评论 -
Verilog 脉冲边沿检测
在很多时候都要对输入脉冲进行边沿检测,如PS/2时序,ps2_data数据在ps2_clk时钟下降沿接收。 边沿检测Verilog程序代码: module DetecEdge(clk,ps2_clk,rst_n,pos_ps2_clk,neg_ps2_clk); input clk; //输入时钟 input ps2_clk; //输入要检测边沿的脉冲 input rst_n; //原创 2017-07-29 17:46:15 · 2352 阅读 · 0 评论