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

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】欢迎添加关注!文章转载请注明出处。
收藏 人收藏
分享:

评论

相关推荐

明德扬至简设计法原理与应用1.1FPGA简介

第一章 FPGA简介1 什么是FPGAFPGA的官方解释是 : Field-Programmable Gate Array,即现场可编程门阵列,它是在P...
发表于 11-12 15:11 95次 阅读
明德扬至简设计法原理与应用1.1FPGA简介

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

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

Verilog和VHDL之间如何互转

当然阶段四纯属个人的对未来的推测,但是,近年来,FPGA也高速发展,明显有当年汇编语言开发到C高....
的头像 电子发烧友网工程师 发表于 11-12 14:23 88次 阅读
Verilog和VHDL之间如何互转

深入分析模拟电路与数字电路的基本知识

作为一位硬件工程师,必须面对的就是两个基本电路:模拟电路和数字电路。下面我们就来了解一下这两个电路的....
的头像 电子工程技术 发表于 11-11 09:40 247次 阅读
深入分析模拟电路与数字电路的基本知识

Verilog hdl硬件描述语言初学入门实验

非门 流水灯 9999计数器
发表于 11-09 20:41 54次 阅读
Verilog hdl硬件描述语言初学入门实验

PCB规范体系之安全距离及相关安全要求

数字电路的频率高,模拟电路的敏感度强,对信号线来说,高频的信号线尽可能远离敏感的模拟电路器件,对地线....
的头像 PCBworld 发表于 11-09 15:16 264次 阅读
PCB规范体系之安全距离及相关安全要求

数字电路设计仿真测试的电子教材免费下载

《数字电路设计·仿真·测试》是2010年8月1日华中科技大学出版社出版的图书。本书基础实验项目均含有....
发表于 11-06 18:56 54次 阅读
数字电路设计仿真测试的电子教材免费下载

可以使用SPI组件进行Verilog编程吗

你好, 可以使用SPI组件进行Verilog编程。 以上来自于百度翻译      以下为原文  &nbs...
发表于 11-06 17:22 54次 阅读
可以使用SPI组件进行Verilog编程吗

verilog在psoc中延迟

大家好 使用Verilog语言,可以在PSoC中创建类似CysDelay-()、CysDelayUs()的毫秒级或微秒级延迟。……任何人请帮助...
发表于 11-06 14:17 25次 阅读
verilog在psoc中延迟

有没有选项可以通过使用verilog而不给出时钟作为输入信号来在psoc中产生500 ms的延迟

在没有给出时钟作为输入信号的情况下,使用Verilog可以在PSoC中产生500毫秒延迟吗? 以上来自于百度翻译   &n...
发表于 11-06 14:07 35次 阅读
有没有选项可以通过使用verilog而不给出时钟作为输入信号来在psoc中产生500 ms的延迟

明德扬FPGA连载课程第一阶段第三章VERILOG(2)

3.2 数字3.2.1数字表示方式      在Verilog中的数字表示方式,最常用的格式是:’,如,4’b1011。  ...
发表于 11-06 09:21 101次 阅读
明德扬FPGA连载课程第一阶段第三章VERILOG(2)

Verilog代码不工作

你好, 我想把时钟脉冲输入到一个输出引脚中,在计数除掉那个时钟之后,我用这个代码附加我的代码,但是这不工作。 模块组件01...
发表于 11-05 14:32 43次 阅读
Verilog代码不工作

准备学习单片机,该做哪些准备呢?

这估计是争论最大的一个问题了,有些人坚持学单片机软件一定要用汇编,也有人坚持选择高级语言。C51刚推....
的头像 玩转单片机 发表于 11-05 11:00 382次 阅读
准备学习单片机,该做哪些准备呢?

回流的基本概念,芯片互连引起的回流问题

如图3.1所示, PCB板上每条导线和其回路构成一个电流环路,根据电磁辐射原理,当突变的电流流过电路....
的头像 玩转单片机 发表于 11-05 10:51 383次 阅读
回流的基本概念,芯片互连引起的回流问题

常见电子类硬件笔试题整理大全(含答案)快来学习吧

硬件电子工程师常见笔面试题目,包含数电模电知识,单片机及信号处理,内含名企面试真题。
发表于 11-05 08:00 54次 阅读
常见电子类硬件笔试题整理大全(含答案)快来学习吧

请问CAN通信接口verilog程序如何编写

CAN通信接口 verilog程序如何编写
发表于 11-01 10:16 147次 阅读
请问CAN通信接口verilog程序如何编写

请问verilog如何实现SJA1000的初始化

verilog 如何实现SJA1000的初始化
发表于 11-01 10:03 132次 阅读
请问verilog如何实现SJA1000的初始化

数字图像是怎么通过模拟转为数字的?

还记得数字电路上对应的实验都是VHDL的实验吗?数字电路告诉我们各种数字逻辑:非或与异。这些逻辑让我....
的头像 FPGA2嵌入式 发表于 10-31 15:18 299次 阅读
数字图像是怎么通过模拟转为数字的?

面包板的结构和使用方法详细介绍

面包板是实验室中用于搭接电路的重要工具,熟练掌握面包板的使用方法是提高实验效率,减少实验故障出现几率....
发表于 10-31 08:00 84次 阅读
面包板的结构和使用方法详细介绍

可以在相同的总块中使用时钟的posedge和negedge

夏威夷群岛 在使用PSoC的Verilog程序中,我想为POSEED输出一个输出值(1’B1),并为同一个时钟的NEGEDGE输出...
发表于 10-30 10:27 53次 阅读
可以在相同的总块中使用时钟的posedge和negedge

数字电子教程之《数字电子技术基础》电子教材桑茂兰版免费下载

为适应我国高职高专教育的要求,经过教学改革与实践,我们编写了这本《数字电子技术基础》。本教材的特,点....
发表于 10-30 08:00 84次 阅读
数字电子教程之《数字电子技术基础》电子教材桑茂兰版免费下载

FPGA Verilog的扫频程序详细资料免费下载

本文档的主要内容详细介绍的是FPGA Verilog的扫频程序详细资料免费下载,可以跟随信号发生器的....
发表于 10-26 08:00 37次 阅读
FPGA Verilog的扫频程序详细资料免费下载

如何学习FPGA学习FPGA的详细经验有哪些阶段

学习FPGA我主要经历了这么几个阶段: ①、Verilog语言的学习,熟悉Verilog语言的各种....
发表于 10-25 18:01 67次 阅读
如何学习FPGA学习FPGA的详细经验有哪些阶段

电子技术基础知识教程之模拟电路和数字电路的知识详细概述

本文档的主要内容详细介绍的是电子技术基础知识教程之模拟电路和数字电路的知识详细概述主要内容包括了:半....
发表于 10-25 08:00 152次 阅读
电子技术基础知识教程之模拟电路和数字电路的知识详细概述

观华大九天的发展历程,便能看到中国EDA的发展之路

其次,华大九天提供数字电路优化工具平台。不像在模拟与混合信号领域有全流程工具,华大九天的数字电路工具....
的头像 DIGITIMES 发表于 10-24 15:08 1041次 阅读
观华大九天的发展历程,便能看到中国EDA的发展之路

PCB布线与布局的规则详细资料概述免费下载

PCB布线与布局隔离准则:强弱电流隔离、大小电压隔离,高低频率隔离、输入输出隔离、数字模拟隔离、输入....
发表于 10-18 15:11 95次 阅读
PCB布线与布局的规则详细资料概述免费下载

PCB中数字地和模拟地有什么区别?有什么处理方法?基本原则是怎样的

二者本质是一直的,就是数字地和模拟地都是地。要明白为什么要分开,先听一个故事;我们公司的商务楼,2楼....
发表于 10-18 08:00 95次 阅读
PCB中数字地和模拟地有什么区别?有什么处理方法?基本原则是怎样的

FPGA的设计流程是怎么样的?FPGA设计流程指南详细资料免费下载

本文档的主要内容详细介绍的是FPGA的设计流程是怎么样的?FPGA设计流程指南详细资料免费下载内容包....
发表于 10-17 17:50 55次 阅读
FPGA的设计流程是怎么样的?FPGA设计流程指南详细资料免费下载

怎样学好数字电子技术?数字电子技术的数制和码制详细资料介绍

模拟信号:时间和数值上连续的信号。 数字信号:时间和数值上是离散的信号。 处理模拟信号的电路称为....
发表于 10-17 08:00 61次 阅读
怎样学好数字电子技术?数字电子技术的数制和码制详细资料介绍

数字电路基础之组合逻辑电路的详细资料概述

本文档的主要内容详细介绍的是数字电路基础之组合逻辑电路的详细资料概述包括了:1.组合逻辑电路的特点2....
发表于 10-17 08:00 63次 阅读
数字电路基础之组合逻辑电路的详细资料概述

数字电路基础教程之时序逻辑电路的详细资料概述

本文档的主要内容详细介绍的是数字电路基础教程之时序逻辑电路的详细资料概述。内容包括了:1.时序逻辑电....
发表于 10-17 08:00 64次 阅读
数字电路基础教程之时序逻辑电路的详细资料概述

数字电路基础教程之脉冲波形的产生和整形的详细资料概述

本文档的主要内容详细介绍的是数字电路基础教程之脉冲波形的产生和整形。主要介绍的内容是:1.555定时....
发表于 10-17 08:00 44次 阅读
数字电路基础教程之脉冲波形的产生和整形的详细资料概述

数字电路的基础知识之DA转换器和AD转换器的详细资料免费下载

数字信号 模拟信号——数-模转换:DAC 模拟信号 数字信号——模-数转换:ADCD/A转换可以将....
发表于 10-17 08:00 56次 阅读
数字电路的基础知识之DA转换器和AD转换器的详细资料免费下载

数字电路数字逻辑试卷模拟题和答案的详细资料免费下载

本文档的主要内容详细介绍的是数字电路数字逻辑试卷模拟题和答案的详细资料免费下载。
发表于 10-17 08:00 45次 阅读
数字电路数字逻辑试卷模拟题和答案的详细资料免费下载

数字电路试卷及答案快来复习吧!

本文档的主要内容详细介绍的是数字电路试卷及答案快来复习吧!
发表于 10-17 08:00 43次 阅读
数字电路试卷及答案快来复习吧!

Verilog数字系统设计教程(第二版)电子教材免费下载

本书讲述了自20世纪90年代开始在美国和其他先进的工业化国家逐步推广的利用硬件描述语言(Verilo....
发表于 10-16 15:43 32次 阅读
Verilog数字系统设计教程(第二版)电子教材免费下载

如何设计常用模块的Verilog HDL?

本文档的主要内容详细介绍的是常用模块的Verilog HDL设计详细资料免费下载。
发表于 10-16 11:12 38次 阅读
如何设计常用模块的Verilog HDL?

什么是模拟电路 什么是数字电路

  模拟信号和数字信号的特点不同,处理这两种信号的方法和电路也不同。一般地, 电子电路可分为模拟电路....
的头像 HOT-ic 发表于 10-16 10:25 404次 阅读
什么是模拟电路 什么是数字电路

高速走丝电火花线切割机电气原理与维修电子教材免费下载

本书从维修的角度,介绍了普通高速走丝线切割机床电气系统的基本原理、常见电路、检修要点以及检修实例,并....
发表于 10-15 08:00 80次 阅读
高速走丝电火花线切割机电气原理与维修电子教材免费下载

如何设计一个计时器?篮球竞赛30秒计时器的毕业设计资料免费下载

本课程设计是脉冲数字电路的简单应用,设计了篮球竞赛30秒计时器。此计时器功能齐全,可以直接清零、启动....
发表于 10-12 08:00 61次 阅读
如何设计一个计时器?篮球竞赛30秒计时器的毕业设计资料免费下载

FPGA中的testbench介绍

跟大家解释一点,所有testbench本质上都是串行执行,因为在CPU环境下,没有可靠并行执行的能力....
的头像 FPGA极客空间 发表于 10-10 16:14 423次 阅读
FPGA中的testbench介绍

为什么眼图测量已经成为今天高速串行数据测试的最重要的项目?

PTopsigma即为眼图波形顶部的噪声标准偏差或均方根值,PBasesigma为眼图波形底部的噪声....
的头像 电子发烧友网 发表于 10-09 09:30 575次 阅读
为什么眼图测量已经成为今天高速串行数据测试的最重要的项目?

单片机的逻辑运算符和位运算符是什么?数字电路中的常用符号

首先,在“逻辑”这个概念范畴内,存在真和假这两个逻辑值,而将其对应到数字电路或 C 语言中,就变成了....
的头像 玩转单片机 发表于 10-03 08:50 1485次 阅读
单片机的逻辑运算符和位运算符是什么?数字电路中的常用符号

数字电子技术实验教程(第二版)电子教材免费下载

全书的内容分上、下两篇。上篇是数字电子技术实验部分,在内容的选择上侧重基础实验,以培养学生的基本实验....
发表于 09-27 16:29 114次 阅读
数字电子技术实验教程(第二版)电子教材免费下载

FPGA控制多轴电机使用verilog编写圆弧,直线插补功能资料免费下载

本文档的主要内容详细介绍的是FPGA控制多轴电机,实现圆弧,直线插补功能,利用verilog语言编写....
发表于 09-26 08:00 76次 阅读
FPGA控制多轴电机使用verilog编写圆弧,直线插补功能资料免费下载

Verilog和VHDL的状态机设计技术的详细资料免费下载

设计同步有限状态机(FSM)是数字逻辑工程师的共同任务。本文将讨论SimopySesign CPLI....
发表于 09-25 08:00 96次 阅读
Verilog和VHDL的状态机设计技术的详细资料免费下载

Multisim在组合逻辑电路设计中的常用元件和详细作用分析

介绍了电子仿真软件Multisim 在组合逻辑电路设计的常用元件, 通过设计一个四变量的楼道路灯控制....
发表于 09-21 16:40 101次 阅读
Multisim在组合逻辑电路设计中的常用元件和详细作用分析

如何使用Verilog HDL设计2位16进制的计数器详细程序分析

实验目的:学习计数器的设计、仿真和硬件测试方法。 实验内容及步骤:
发表于 09-21 16:15 94次 阅读
如何使用Verilog HDL设计2位16进制的计数器详细程序分析

Verilog HDL入门教程之Verilog HDL数字系统设计教程

本文档的主要内容详细介绍的是Verilog HDL入门教程之Verilog HDL数字系统设计教程。
发表于 09-20 15:51 96次 阅读
Verilog HDL入门教程之Verilog HDL数字系统设计教程

以太网物理层的有什么基本功能?如何通过Verilog HDL实现

以太网作为一种局域网基本介质接入技术,近年来得到迅速的应用发展。以太网的应用范围广泛从公司、企业的局....
发表于 09-18 17:19 102次 阅读
以太网物理层的有什么基本功能?如何通过Verilog HDL实现

FPGA学习verilog代码的经验总结

既然HDL设计是并行的,那么就只能各个击破了。我的习惯是先抓几个重要端口,比如时钟(CLK)、复....
发表于 09-15 09:59 201次 阅读
FPGA学习verilog代码的经验总结

不同verilog代码的RTL视图

刚开始玩CPLD/FPGA开发板的时候使用的一块基于EPM240T100的板子,alter的这块芯片....
发表于 09-15 09:57 190次 阅读
不同verilog代码的RTL视图

如何把二进制转换为格雷码?格雷码是如何判断读空写满呢?

在传递读写时钟域的指针使用格雷码来传递,如何把二进制转换为格雷码,格雷码是如何判断读空写满呢?
的头像 FPGA极客空间 发表于 09-15 09:38 472次 阅读
如何把二进制转换为格雷码?格雷码是如何判断读空写满呢?

时序违例的修正与时序优化的思考方向

时序逻辑电路示意图如下。前后两级寄存器之间有一个组合逻辑运算电路。
的头像 电子发烧友网工程师 发表于 09-15 08:23 647次 阅读
时序违例的修正与时序优化的思考方向

常见的Verilog行为级描述语法

常见的Verilog描述语句与对应的逻辑关系;熟悉语法与逻辑之间的关系
的头像 电子发烧友网工程师 发表于 09-15 08:18 594次 阅读
常见的Verilog行为级描述语法

EDA使用教程之EDA设计技术实验指导书资料免费下载

实验包括了:组合逻辑电路设计,时序逻辑电路设计,异步计数器的设计,全加器的设计,七段数码管显示电路的....
发表于 09-12 08:00 81次 阅读
EDA使用教程之EDA设计技术实验指导书资料免费下载

组合逻辑概述

根据狄摩根定律第二条,就可以将积之和布尔表达式转化成和之积形式;根据狄摩根定律第一条,就可以将和之积....
的头像 电子发烧友网工程师 发表于 09-10 10:49 471次 阅读
组合逻辑概述