verilog复习与vhdl入门
verilog复习与vhdl入门
1.Verilog回顾
基本结构
verilog以module为单位,module的基本结构:
(1)模块声明(内含端口定义),如:
module (
input wire clk,
input wire rst_n,
output reg q
);
…
endmodule
(2)内部信号定义,内部参数定义,如:
reg [7:0] cnt;
parameter IDLE = 3‘b001;
(3)逻辑功能实现,如:
always @ (a or b) begin
if (!a) b <= 0;
else b <= 1;
end (组合逻辑)
always @ (posedge clk) begin
if (cnt == 3’b000) q <= 1;
end (时序逻辑)
assign data = a & b; (线网赋值)
(4)元件例化,如:
and a3 (
.clk (clk),
.rst_n (rst_n),
.q (q)
); (端口映射,用信号名关联)
常用语句
条件语句(组合逻辑记得写else),case语句(组合逻辑记得写default),
always语句(电平敏感——组合逻辑;边沿敏感——时序逻辑,一个always只处理一个信号)
initial块(给输入信号赋初值/构建输入波形),always语句(此处只有延时,用于时钟创建),
编程重要思想
(1)计数器
初步理解,常用于控制时序,利用计数的值实现在特定时间做某些动作
已尝试的场合:结合case语句,在计数到某个值时做特定动作
(2)有限状态机
初步理解,解决多状态事件常用,一般步骤:
根据具体问题,抽象出事件发展时的所有状态;
选择起始状态,并使用合适的状态编码;
画出状态转换图,标出转换条件与输出;
根据此图写描述代码,常用两段式(状态转换+输出处理),注意未用到状态的处理;
常用语句:case语句,if语句,always语句
(3)流水线
未使用。
2.VHDL回顾
基本结构
entity,architecture,process,library
常用语句
3.Verilog与VHDL的联系
相同的层次化设计思想
无论是哪种语言,设计一个规模不小的电路,层次化设计的方法论是必须的,
其中两大核心:模块划分和模块重用,总是适用的。
模块划分原则:
(1)模块功能单一,与其他模块相对独立
(2)模块间的连接要简单
(3)设计参数化的模块,根据参数的不同,实现结构类似功能不同的一类电路,
而参数值的改变,在上层模块调用下层模块时可进行值的覆盖。
模块重用:
类似与软件编程中的函数,使代码功能专门化,但不同的是,由于设计的是硬件电路,即使需要的都是同样的功能,只是在不同的地方使用,在电路中也要复制出相应数量的物理实体,这从RTL网表中可以看出。
相同的并行处理思想
组合逻辑好比往没有阀门的水管通水,数据流一旦进入,就会立即被处理,然后输出,中间没有等待;
always vs process
verilog中的always,vhdl中的process,都是一个模块中逻辑功能实现的主要手段,两种语句都表现出相似的四种特性:反复执行,多个之间并行执行,块内顺序执行,需要触发
反复执行与需要触发:
always和process中的语句执行都要有条件:电平敏感/边沿敏感,通常的执行过程是:等待触发——触发——执行动作——挂起并等待下一次触发,这个过程从系统上电开始,直到系统掉电结束。
多个之间并行与块内顺序执行:
由于都是模块功能实现语句,多个always/process之间的关系就像电路中各个模块之间的关系,相互之间既有信号交流,又互不干扰,各自工作。
阻塞赋值与变量赋值,非阻塞赋值与信号赋值
verilog复习与vhdl入门相关推荐
- 如何学习verilog,如何快速入门?
前言 害怕真的有人不知道verilog是什么东西,于是就给把百度给搬来了! Verilog HDL是一种硬件描述语言,以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图.逻辑表达式 ...
- 例说Verilog HDL和VHDL区别,助你选择适合自己的硬件描述语言
如果你搜索Verilog和VHDL的区别,你会看到很多讨论这场HDL语言战争的区别页面,但大多数都很简短,没有很好地举例说明,不方便初学者或学生理解. Verilog和VHDL之间的区别将在本文中通过 ...
- Verilog hdl与VHDL混用详解
Verilog hdl ...
- 【Python刷题篇】Python从0到入门3|循环、条件复习、元组入门、字典入门
Python从0到入门3目录 前言 Q1:团队分组 Q2:禁止重复注册 Q3:元组-牛客运动会 Q4:字典-遍历字典 Q5:字典-毕业生就业调查 Q6:姓名与学号 总结 前言 - 本期是Python从 ...
- 【Python刷题篇】Python从0到入门4|字典复习、函数入门、综合实践
Python从0到入门3目录 前言 Q1:字典复习-首都 Q2:函数入门-求差 Q3:函数入门-牛牛的朋友 Q4:综合案例:自动售卖饮料机 Q5:综合案例-被8整除的数字 Q6:综合案例-披萨店的订单 ...
- [从零开始学习FPGA编程-9]:快速入门篇 - 操作步骤2-1- 硬件电路图形化描述与文本硬件描述语言Verilog HDL与VHDL语言以及比较
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...
- 在verilog中调用VHDL模块
习惯了自己发现一些小问题,既然发现了,就记下来吧,不然又要忘了,这是多么悲痛的领悟. 今天在用vivado进行块设计时所生成的顶层模块居然是用VHDL语言描述的,这时郁闷了,表示只看过VHDL语法但没 ...
- Verilog HDL和VHDL的区别
VHDL 与 VerilogHDL 的不同点 序号 区别之处 VHDL Verilog 1 文件的扩展名不一样 .vhd .v 2 结构不一样 包含库.实体.结构体. ENTITY 实体名 IS PO ...
- 牛客寒假算法基础集训营2:处女座的期末复习(贪心入门)
链接:https://ac.nowcoder.com/acm/contest/327/J 来源:牛客网 ** 题目描述 ** 快要期末考试了,处女座现在有n门课程需要考试,每一门课程需要花ai小时进行 ...
最新文章
- mysql插入的时候是否需要commit
- linux 0地址的妙用
- 怎么在python下载网站内容-分析某网站,并利用python自动登陆该网站,下载网站内容...
- 《众妙之门——Web用户体验设计与可用性测试》一第2章 在网页设计中通过测量数据优化情感投入2.1 情感应答和行为应答的关系...
- 【转】logback 常用配置详解(序)logback 简介
- java线程池案例_使用Executors 和 ThreadPoolExecutor实现Java线程池案例
- 构造activeMQ
- 职场生活:辞职也有大学问
- [原创]Clang with Microsoft CodeGen小测试
- .NET根本权限管理框架源代码
- vs2013制作滚屏软件
- Simscape Multibody 多体动力学仿真教程(一)
- PPT 插入表格出现格式如何清除
- epub阅读器 html,打造web版epub阅读器(书架设计)
- ios设备备份,更新路径(mac os)
- 英文Assignment写作段落重要性讲解
- 计算机程序设计论文2万字,【程序设计论文】核心素养下的计算机程序设计教学(共4049字)...
- 石墨文档(协同开发)
- java游戏宠物进化,[娱乐][SCT]imiPet —— 动态动作模型的宠物开源,由社区维护[1.9-1.16]...
- Map体系结构特点概述
热门文章
- Linux setup jdk environment
- 2018年吉林大学软件学院软件工程专硕复试题目回忆
- Zzzzzz 每天来点负能量---看着就会心地笑了
- Line-based Automatic Extrinsic Calibration of LiDAR and Camera论文阅读
- NRF24LE1E与NRF24LE1G的区别
- MyBatis警告信息 All illegal access operations will be denied in a future release
- 2022世界VR产业大会圆满收官,酷雷曼惊艳亮相!
- 比脸软件测试自学,【AI测试学习】FakeApp, Faceswap, DeepFaceLab等Deepfakes换脸程序的简单对比 (转)...
- 【AI视野·今日Robot 机器人论文速览 第二十六期】Wed, 3 Nov 2021
- java.io.IOException: Incomplete output stream