【四旋翼飞行器】76小时吃透四轴算法!史上最强软硬结合实战项目,👉戳此立抢👈

数字电路里面有什么元素需要被描述?

2018-09-07 14:47 次阅读
初识Verilog描述-1 “ Verilog不同于C,Python,JAVA等软件语言,Verilog是以数字电路知识为背景支撑,以对数字电路系统进行描述的一门语言。因此用Verilog描述数字电路,必须要有数字电路知识为背景支撑。否则描述出来的电路性能将会很差。本篇我们先了解一下最基本的Verilog对数字电路描述的方法与代码风格,具体语法细节在这不做过多解释。” 在了解Verilog基本构成之前,先要了解数字电路里面有什么元素需要被描述。 如下图所示,为一个实例电路外部原理图: 从外部看一个电路需要描述的元素如下: 电路名字 输入端口以及位宽     输出端口以及位宽 端口描述有两种方式。 以上图为例: (1) module share_1(         clk,                  rst_n,                                  a,                    b,                                   data_out                                 );                                       input clk;             input rst_n;                        input[7:0]  a;         input[7:0]  b;                         output[8:0] data_out;  (2) module share_1(             input        clk,          input        rst_n,                                input [7:0]  a,            input [7:0]  b,                                output [8:0] data_out                          );       下图为其内部电路结构: 电路内部需要描述元素有: 信号的类型:reg型(所有在always电路里面将要做改变的信号),wire型(电路信号连线) 如上例电路:输入信号本来就为电路信号连线,且在端口声明中已经声明,无需再做wire 声明。 输出信号data_out是寄存器的输出,因此声明为: reg[8:0] data_out; 节点信号add_out(对应电路上的OUT),为加法器的输出。如果加法器是用always块实现的,如下: always @( * ) begin  add_out = a+b;     end                  则声明为reg型: reg[8:0]  add_out; 如果加法器是用assign语句实现的,如下: assign add_out = a+b;  则声明为wire型: wire[8:0] add_out; 注意:所有声明必须带上位宽,否则系统工具将其默认为单位宽,如上信号add_out为9位宽,因此声明为 reg [8:0]  add_out; 组合逻辑电路: 可以利用 assign 或者 always @(*)  语句描述。一般复杂的组合逻辑电路利用 always @(*)语句块描述。如上加法器的实现既可以用always语句实现,也可以利用assign语句实现。 寄存器(有如下几种常用的不同的寄存器模型): (1) 时钟信号上升沿驱动,复位信号低电平有效,与时钟异步复位: always @( posedge clk or negedge rst_n ) begin if( !rst_n ) data_out <= 8h00; else  data_out <= data_in; end (2) 时钟信号上升沿驱动,复位信号高电平有效,与时钟异步复位: always @( posedge clk or posedge rst ) begin if( rst ) data_out <= 8h00; else  data_out <= data_in; end (3) 时钟信号下降沿驱动,复位信号高电平有效,与时钟同步复位: always @( negedge clk ) begin if( rst_n ) data_out <= 8h00; else  data_out <= data_in; end (4) 时钟信号上升沿驱动,复位信号低电平有效,与时钟同步复位,并且带有高电平使能信号: always @( posedge clk ) begin if( !rst_n ) data_out <= 8h00; else  if( enable ) data_out <= data_in; else data_out <= data_out; end 给出两种完整的描述方式,大家自行体会,电路功能为带寄存器输出的8位无符号数加法器: (1) module share_1(                                   clk,                                            rst_n,                                          a,                                              b,                                              data_out                                        );                                                input clk;                                       input rst_n;                                     input[7:0]  a;                                   input[7:0]  b;                                   output[8:0] data_out;                            reg[8:0]    data_out;                            wire[8:0]   add_out;                              assign add_out = a+b;                            always @( posedge clk or negedge rst_n ) begin   if( !rst_n )                                   data_out <= 9h00;                           else                                           data_out <= add_out;                         end                                              endmodule      (2) module share_1(                                 input        clk,                              input        rst_n,                            input [7:0]  a,                                input [7:0]  b,                                output [8:0] data_out                          );                                              reg[8:0] data_out ;                            reg[8:0]   add_out;                            always @( * ) begin                            add_out = a+b;                              end                                            always @( posedge clk or negedge rst_n ) begin if( !rst_n )                                 data_out <= 9h00;                         else                                         data_out <= add_out;                       end                                            endmodule      注:这里只是带着大家从电路入手,宏观的了解一下Verilog描述数字电路的结构与注意事项,具体语法可自行学习。 
原文标题:初识Verilog描述-1 文章出处:【微信号:LF-FPGA,微信公众号:小鱼FPGA】欢迎添加关注!文章转载请注明出处。
收藏 人收藏
分享:

评论

相关推荐

EDA技术的主要特点和功能以及对数字电路的设计

EDA(电子线路设计座自动化)是以计算机为工作平台、以硬件描述语言(VHDL)为设计语言、以可编程器....
发表于 01-23 14:51 45次 阅读
EDA技术的主要特点和功能以及对数字电路的设计

Xilinx ISE版本6如何使用

我有这个简单的codemodule和gate(a,b,y);输入a,b;输出y;赋值y = a&amp; b; endmodule我想在Xilinx ISI软件中运行此代...
发表于 01-21 09:19 12次 阅读
Xilinx ISE版本6如何使用

正确使用典型EMI静噪滤波器的示例:电容器、电阻器和铁氧体磁珠

当正确的噪声抑制方法尚未明确时,各种想法在我脑海中闪现:例如,也许当时处理的零部件是错误的,我应该处....
的头像 村田中文技术社区 发表于 01-17 13:44 612次 阅读
正确使用典型EMI静噪滤波器的示例:电容器、电阻器和铁氧体磁珠

74AHC32逻辑电路图两个非门的原因

如图,这是74AHC32的逻辑电路图。 请问为何输出端加了两个非门,是要做到延迟吗? ...
发表于 01-14 11:40 177次 阅读
74AHC32逻辑电路图两个非门的原因

verilog教程之分频计数实验的资料说明

这个实验可以说是verilog入门最基础的实验了,我们不做太多的理论分析,实践是硬道理。蜂鸣器与CP....
发表于 01-14 08:00 22次 阅读
verilog教程之分频计数实验的资料说明

verilog中语句时序num初始值为0那case中为0的语句还执行吗?

各位大神,菜鸟小弟我有个问题急需大家帮忙。 在always 语句下有如下情况: ... if(clk_bps)   begin   ...
发表于 01-13 22:59 27次 阅读
verilog中语句时序num初始值为0那case中为0的语句还执行吗?

如何采用电磁干扰EMI和射频干扰RFI屏蔽保护数字电路免受外部幅射

EMI/RFI屏蔽是电视机、收音机、手机和计算机等众多消费电子产品,以及在医疗和航空领域中使用的设备....
发表于 01-11 14:54 121次 阅读
如何采用电磁干扰EMI和射频干扰RFI屏蔽保护数字电路免受外部幅射

PCB印刷电路板设计高频布线的技巧

(1)高频电路往往集成度较高,布线密度大,采用多层板既是布线所必须的,也是降低干扰的有效手段。 ....
发表于 01-11 14:43 503次 阅读
PCB印刷电路板设计高频布线的技巧

如何使用FPGA进行面向密码应用的关键技术研究

高性能计算正经历着根本性的变化。能耗和散热的需求也逐渐成为限制了大型数据中心的不断扩张的瓶颈。这些变....
发表于 01-10 11:10 67次 阅读
如何使用FPGA进行面向密码应用的关键技术研究

如何在Verilog中声明一个2-D端口

嗨, 任何人都知道,如何在Verilog中声明一个2-D端口。 问候, 怪物 以上来自于谷歌翻译 以下为原文 Hi, &n...
发表于 01-10 10:59 17次 阅读
如何在Verilog中声明一个2-D端口

请问高手Verilog中引用VHDL原件?

请问是否有范例? (1) Verilog 中引用 VHDL原件? (2) VHDL 中引用 Verilog原件?...
发表于 01-10 09:27 31次 阅读
请问高手Verilog中引用VHDL原件?

模块传播延迟怎么在Spartan 3板上实现

我模拟了一个使用一些传播延迟的verilog设计: 和#20(out,in1,in2); (使用#20作为20纳秒) 并且模拟效果很好。 现在...
发表于 01-09 09:51 30次 阅读
模块传播延迟怎么在Spartan 3板上实现

数字电路的基础知识149页PPT课件资料免费下载

研究模拟信号时,我们注重电路输入、输出信号间的大小、相位关系。相应的电子电路就是模拟电路,包括交直流....
发表于 01-09 08:00 109次 阅读
数字电路的基础知识149页PPT课件资料免费下载

两个与非门电路的介绍

本文档的主要内容详细介绍的是两个与非门电路的介绍 与非门(英语:NAND gate)是数字电路的一种....
发表于 01-09 08:00 56次 阅读
两个与非门电路的介绍

Verilog教程之Verilog的命令格式资料说明

本文档的主要内容详细介绍的是Verilog HDL教程之Verilog HDL的命令格式资料说明。
发表于 01-09 08:00 30次 阅读
Verilog教程之Verilog的命令格式资料说明

如何编码verilog在双向信号上使用LVDS标准?

大家好 我正在使用Xilinx Spartan 3e芯片。 我可以在严格的输入信号或严格的输出上使用LVDS。 但有没有人知道如何编码v...
发表于 01-08 10:17 29次 阅读
如何编码verilog在双向信号上使用LVDS标准?

Verilog分析文件失败

嗨, 我就像你可以得到的那样新手,所以我的appologies。 我写了一个简单的模块,它取一个半字节并在七位数显示器上显示为十六...
发表于 01-08 10:15 20次 阅读
Verilog分析文件失败

xilinx的verilog如何使用timescla属性

你好, 我想创建一个具有上升时间和下降时间控制的受控时钟。 我想我们可以使用timescla属性但是如何使用它? 有人可以帮忙吗...
发表于 01-08 10:11 15次 阅读
xilinx的verilog如何使用timescla属性

FPGA各种数字电路模拟的详细资料合集免费下载

本文档的主要内容详细介绍的是FPGA各种数字电路模拟的详细资料合集免费下载主要内容包括了:4 位全加....
发表于 01-02 17:35 148次 阅读
FPGA各种数字电路模拟的详细资料合集免费下载

Verilog如何编程?Verilog编程知识点总结

FPGA的设计就是将自己想要实现的逻辑通过计算机能够理解的语言描述出来,并让计算机根据FPGA内部的....
的头像 电子发烧友网工程师 发表于 01-01 10:13 473次 阅读
Verilog如何编程?Verilog编程知识点总结

《电子技术实验指导》下载

电子技术实验指导 出版时间:2011年版 内容简介   《电子技术实验指导》是根据“电子技术基础”教学大纲要求,结合多年的民...
发表于 12-30 22:14 137次 阅读
《电子技术实验指导》下载

如何使用SystemView实现4QDPSK调制技术

基于相位键控的一些基本方法运用的正交查分相移相关知识研究π/4QDPSK编码解码技术。并且根据π/4....
发表于 12-29 16:48 472次 阅读
如何使用SystemView实现4QDPSK调制技术

数字电路教程之数模转换和模数转换的课件资料概述

本文档的主要内容详细介绍的是数字电路教程之数模转换和模数转换的课件资料免费下载为了能够使用数字电路处....
发表于 12-28 08:00 61次 阅读
数字电路教程之数模转换和模数转换的课件资料概述

数字电路教程之脉冲波形的产生和整形课件资料免费下载

本文档的主要内容详细介绍的是数字电路教程之脉冲波形的产生和整形课件资料免费下载主要内容包括了:1 概....
发表于 12-28 08:00 124次 阅读
数字电路教程之脉冲波形的产生和整形课件资料免费下载

数字电路教程之半导体存储器课件资料免费下载

本文档的主要内容详细介绍的是数字电路教程之半导体存储器课件资料免费下载主要内容包括了:第一节 只读存....
发表于 12-28 08:00 207次 阅读
数字电路教程之半导体存储器课件资料免费下载

数字电路教程之时序逻辑电路课件的详细资料免费下载

本文档的主要内容详细介绍的是数字电路教程之时序逻辑电路课件的详细资料免费下载主要内容包括了:一 概述....
发表于 12-28 08:00 75次 阅读
数字电路教程之时序逻辑电路课件的详细资料免费下载

数字电路教程之触发器课件的详细资料说明

本文档的主要内容详细介绍的是数字电路教程之触发器课件的详细资料说明主要内容包括了:一 SR锁存器,二....
发表于 12-28 08:00 96次 阅读
数字电路教程之触发器课件的详细资料说明

数字电路教程之组合逻辑电路课件详细资料免费下载

本文档的主要内容详细介绍的是数字电路教程之组合逻辑电路课件详细资料免费下载主要内容包括了:一 概述 ....
发表于 12-28 08:00 78次 阅读
数字电路教程之组合逻辑电路课件详细资料免费下载

数字电路教程之逻辑代数基础课件资料免费下载

本文档的主要内容详细介绍的是数字电路教程课件之逻辑代数基础主要内容包括了:一 概述,二 逻辑代数中的....
发表于 12-28 08:00 87次 阅读
数字电路教程之逻辑代数基础课件资料免费下载

数字电路教程课件之数制和码制的详细资料说明

本文档的主要内容详细介绍的是数字电路教程课件之数制和码制的详细资料说明主要内容包括了:1 概述2 数....
发表于 12-28 08:00 223次 阅读
数字电路教程课件之数制和码制的详细资料说明

单片机教程之在应用中学习单片机编程通俗易懂的学会单片机

本教程分为上、下两册,上册部分主要教您掌握单片机开发的基本步骤和软硬件的编程与设计,如果您学完了上册....
发表于 12-26 14:57 122次 阅读
单片机教程之在应用中学习单片机编程通俗易懂的学会单片机

如何设计并制作一个简易八路抢答器制作

随着科学技术的不断发展,促使人们学科学、学技术、学知识的手段多种多样。抢答器作为一种工具,已广泛应用....
发表于 12-24 08:00 261次 阅读
如何设计并制作一个简易八路抢答器制作

Verilog HDL数字设计与综合第二版电子教材免费下载

本书从用户的角度全面阐述了Verilog HDL语言的重要细节和基本设计方法,并详细介绍了Veril....
发表于 12-24 08:00 192次 阅读
Verilog HDL数字设计与综合第二版电子教材免费下载

用什么可以替代CD4011

CD4011有所涉猎,CD4011是应用广泛的数字IC之一,它们内含4个独立的2输入端与非门,其逻辑....
发表于 12-21 09:25 133次 阅读
用什么可以替代CD4011

信号完整性培训教程之信号完整性的基础知识中兴教材免费下载

 近年来,通讯技术、计算机技术的发展越来越快,高速数字电路在设计中的运用越来越多,数字接入设备的交换....
发表于 12-21 08:00 153次 阅读
信号完整性培训教程之信号完整性的基础知识中兴教材免费下载

全加器cd14560可以用什么替代

全加器 CD14560的工作原理 CD14560 是一块十进制全加速集成电路,为 16 脚双列直插封....
的头像 人间烟火123 发表于 12-20 18:16 377次 阅读
全加器cd14560可以用什么替代

《数字电子技术》的学习指导与习题详解资料免费下载

数字电子技术”课程是电子信息类各专业的基础课,是学习计算机硬件的基础。为帮助读者学好本课程,特编写本....
发表于 12-20 08:00 102次 阅读
《数字电子技术》的学习指导与习题详解资料免费下载

PCB设计教程之PCB板布线中地线和电源线的布线规则资料说明

电源、 地线的布置考虑不周到而引起干扰,使产品的性能下降,严重时会降低产品的成功率。要把电源线和地线....
发表于 12-20 08:00 66次 阅读
PCB设计教程之PCB板布线中地线和电源线的布线规则资料说明

使用verilogHDL实现乘法器

本文在设计实现乘法器时,采用了4-2和5-2混合压缩器对部分积进行压缩,减少了乘法器的延时和资源占 ....
发表于 12-19 13:30 528次 阅读
使用verilogHDL实现乘法器

一文讲解电力电子设计中的接地系统

我们先从电的起源发电厂说起,大家都知道现在家用的电器大部分供电都是单相电220V/50Hz,有三根线....
的头像 电磁兼容EMC 发表于 12-13 09:24 488次 阅读
一文讲解电力电子设计中的接地系统

如何使用Verilog-HDL做CPLD设计的时序逻辑电路的实现

本文档的主要内容详细介绍的是如何使用Verilog-HDL做CPLD设计的时序逻辑电路的实现。
发表于 12-12 16:25 140次 阅读
如何使用Verilog-HDL做CPLD设计的时序逻辑电路的实现

如何通过PWM的方式实现数字到模拟变换的功能

PWM-DAC的分辨率相当于脉冲宽度相对于整个周期的精度,举例如果一个最小的脉冲ON的时间为5ns(....
的头像 电子发烧友网工程师 发表于 12-12 14:02 584次 阅读
如何通过PWM的方式实现数字到模拟变换的功能

关于射频板PCB的设计的规则和经典案例

数字、模拟信号线不跨区域布线,如果信号走线必须要穿过射频线,优选分层布线,在它们之间沿着射频走线布一....
的头像 电子发烧友网工程师 发表于 12-10 10:30 696次 阅读
关于射频板PCB的设计的规则和经典案例

Quartus-II使用教程之Quartus Ⅱ的Verilog HDL建模与仿真资料说明

本文档的主要内容详细介绍的是Quartus-II使用教程之Quartus Ⅱ的Verilog HDL....
发表于 12-07 08:00 140次 阅读
Quartus-II使用教程之Quartus Ⅱ的Verilog HDL建模与仿真资料说明

高速数字电路设计手册完整版详细资料免费下载

高速数字电路设计跟低速数字电路设计不同的是 他强调组成电路的无源部件对电路的影响 这些无源器件包括导....
发表于 12-04 08:00 100次 阅读
高速数字电路设计手册完整版详细资料免费下载

PCB布线中需要着重注意的7个方面

在大面积的接地(电)中,常用元器件的腿与其连接,对连接腿的处理需要进行综合的考虑,就电气性能而言,元....
的头像 小哥Allegro 发表于 11-27 14:19 790次 阅读
PCB布线中需要着重注意的7个方面

如何利用verilog验证二分法查找的设计代码

下面是产生输出文件的过程,这里我们设置输出结果的格式是fsdb,当然我们也可以设置成vcd的格式。f....
的头像 跟IC君一起学习集成电路 发表于 11-26 14:39 801次 阅读
如何利用verilog验证二分法查找的设计代码

数字逻辑电路有什么用途和特点

数字电子电路中的后起之秀是数字逻辑电路。把它叫做数字电路是因为电路中传递的虽然也是脉冲,但这些脉冲是....
发表于 11-23 08:00 135次 阅读
数字逻辑电路有什么用途和特点

PNP三极管的工作原理是怎样的PNP三极管的工作原理解密资料概述

对三极管放大作用的理解,切记一点:能量不会无缘无故的产生,所以,三极管一定不会产生能量,但三极管厉害....
发表于 11-22 08:00 1120次 阅读
PNP三极管的工作原理是怎样的PNP三极管的工作原理解密资料概述

PCB设计规范最新版资料免费下载

在PCB设计中,布线是完成产品设计的重要步骤,可以说前面的准备工作都是为它而做的, 在整个PCB中,....
发表于 11-21 17:46 142次 阅读
PCB设计规范最新版资料免费下载

使用FPGA的超声波测距资料合集免费下载

本文档的主要内容详细介绍的是使用FPGA的超声波测距资料合集免费下载,Verilog程序,数码管显示....
发表于 11-20 08:00 162次 阅读
使用FPGA的超声波测距资料合集免费下载

电子入门教程之电子达人我的第一本电子技术实用工具书免费下载

本书中文版将原书分成上、下2册出版,上册主要介绍电子学基础知识,包括电子学基本概念、各类电子元器件介....
发表于 11-19 11:40 273次 阅读
电子入门教程之电子达人我的第一本电子技术实用工具书免费下载

如何使用FPGA实现发电机组频率测量计的设计

利用Verilog HDL 硬件描述语言自顶向下的设计方法和QuartusⅡ 软件,在复杂的可编程逻....
发表于 11-16 16:48 178次 阅读
如何使用FPGA实现发电机组频率测量计的设计

一级差分运放的介绍和仿真实现

放大器是模拟与数字电路中的一个基本结构, 对功耗、线性度、增益、速度、噪声都有较高的要求。差分放大器....
发表于 11-16 08:00 268次 阅读
一级差分运放的介绍和仿真实现

Verilog 99题:画出CMOS三态缓冲器的电路原理图

图5,CMOS传输门,双向传输,当C=0,~C=Vdd,两个MOS管都截止,输入和输出之间呈现高阻态....
的头像 电子发烧友网工程师 发表于 11-12 14:34 862次 阅读
Verilog 99题:画出CMOS三态缓冲器的电路原理图