期末复习【Verilog】

这篇具有很好参考价值的文章主要介绍了期末复习【Verilog】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

2022-12-28 10:07:30

以下内容源自Verilog
仅供学习交流使用

复习重点:

课本例题
课本特例
课本图表
课后习题

推荐

导航【Verilog】

第五章 习题

产生位宽为4的质数序列{1、2、3、5、7、11、13},并且重复两次,其中样值间隔为4个仿真时间单位。

由于该序列无明显规律,因此利用initial语句最为合适。

`timescale  1ns /1ps
module sequence_tb;    
	reg      [3:0]     q_out; 
	parameter  sample_period = 4; 
	parameter  queue_num  = 2; 
	initial     
		begin 
			q_out  = 0; 
			repeat(queue_num)       
				begin  
				#  sample_period  q_out = 1; 
				#  sample_period  q_out = 2;
				#  sample_period  q_out = 3;        
				#  sample_period  q_out = 5;        
				#  sample_period  q_out = 7;        
				#  sample_period  q_out = 11;        
				#  sample_period  q_out = 13;       
				end     
		end     
endmodule


产生占空比为50%的时钟信号,其波形如图所示。
期末复习【Verilog】

(1) 基于initial语句的方法。

module clk1(clk); 
	output clk; 
	parameter clk_period = 10; 
	reg clk; 
	initial 
		begin    
			clk = 0;    
			forever   #(clk_period/2)  clk = ~clk; 
		end
endmodule

(2) 基于always语句的方法。

module clk2(clk); 
	output clk; 
	parameter clk_period = 10; 
	reg clk; 
	initial	clk = 0; 
	always 
		# (clk_period/2)   clk = ~clk;
endmodule

initial语句用于初始化clk信号,如果没有对clk信号的初始化赋值,会出现对未知信号取反的情况,从而造成clk信号在整个仿真阶段都为未知状态。


产生占空比可设置的时钟信号。

自定义占空比信号可以通过always模块快速实现。下面是占空比为20%的时钟信号代码。

module Duty_Cycle(clk); 
	output clk; 
	parameter High_time=5,Low_time=20;                                      
	//占空比为High_time/(High_time+Low_time) 
	reg clk; 
	always               
		begin                 
			clk=1;                  
			#High_time;                 
			clk=0;                 
			#Low_time;         
		end
endmodule

这里因为是直接对clk信号赋值,所以不需要initial语句初始化clk信号。


分析以下两段代码的区别。

`timescale 10ns/1ns
module  delay_tb; 
	reg  set; 
	parameter  d=1.55; 
	initial   
		begin 
			#d set=0; 
			#d set=1;   
		end
endmodule
`timescale 10ns/100ps
module  delay_tb; 
	reg  set; 
	parameter  d=1.55; 
	initial   
		begin 
			#d set=0; 
			#d set=1;   
		end
endmodule

区别
timescale语句中
时间单位一样:10ns
时间精度不一样:1ns和100ps(0.1ns)

延迟时间:d个时间单位
前者:15.5ns,但是由于时间精度为1ns,精度表示不了0.1ns,所以实际延迟时间为16ns,下一个为32ns
后者:15.5ns,但是由于时间精度为100ps(0.1ns),精度可以表示0.1ns,所以实际延迟时间为15.5ns,下一个为31ns

波形如下

期末复习【Verilog】


请问如下语句中存储器类型变量ram的容量是多少?并将ram所有存储单元内容为0。
reg [15:0] ram [3:0];

initial     
	begin
    	ram[0]=16’h0000;
        ram[1]=16’h0000;
        ram[2]=16’h0000;
        ram[3]=16’h0000;
    end

期末复习【Verilog】

考点

题型:
一、选择题
二、填空题
三、分析题(3-17)
四、综合题(4-40)

重点:

一、名词解释
1.4 Verilog HDL和VHDL的特点和区别
1.8数字集成电路设计流程
二、概念
2.1语言要素中的符号(注释符、标识符)
2.2数据类型 物理(wire tri trireg reg 存储器 位宽 个数)抽象 参数-常量 assign always
2.3运算(归约 连接 条件(三目)逻辑(真假)-按位(x情况))
2.4 模块
三、三种建模方式
3.1数据assign
3.2行为always initial 特点-区别-可综合性 只能是reg
行为描述语句–可综合性
3.2.2 begin-end fork-join 信号波形<–>语句块
3.2.3= <= 例3,.2-7
3.3 结构化建模 (模块 门)
四、代码设计
组合 6种(加法-比较-数选 编码-译码-奇偶)
时序(计数器->分频)
有限同步状态机(编码->状态图->代码设计)看课堂PPT
五、测试
5.1 5.2会写testbench
自学 5.3 5.9前三种 仿真时间标度
六、高级设计
存储器(单端口例6.2-6 ROM必须初始化 例6.2-8)
状态机

2023-2-21 17:23:08

复习

2023-1-1 14:10:10

第1章 Verilog HDL 数字基集成电路设计方法概述

  • 考题:以选择题 填空题为主
  • 重点:一些概念
HDL:是一种高级程序设计语言,通过对数字电路和系统的语言描述,
	可以对数字集成电路进行设计和验证
EDA:一些公司提供功能强大的电子设计自动化工具
FPGA:现场可编程门阵列
IP核:具有知识产权核的集成电路芯核的总称
RTL:数字电路设计和代码编码阶段   
  • 1.4 Verilog HDL和VHDL
共同特点
各自特点 
	Verilog HDL:可以描述系统级 算法级 寄存器传输级 门级 开关级电路
	VHDL:不具备开关级电路描述能力
	图1.4-1 Verilog HDL和VHDL建模能力比较
  • 1.5 Verilog HDL在数字集成电路设计中的优点
第一,可以用较少的语句描述较为复杂的电路
第二,Verilog HDL 具有极为灵活的可扩展特性
  • 1.8 Verilog HDL 在数字基础电路设计流程中的作用
图1.8-1 数字集成电路设计流程 
第一阶段:系统设计阶段(总体方案 系统建模)
第二阶段:数字电路设计和代码编写阶段,即RTL代码编写阶段		√
第三阶段:电路验证阶段(功能验证 时序验证)			√
第四阶段:集成电路的后端设计阶段

第一章 作业【Verilog】

第2章 Verilog HDL 基础知识

  • 考题:以选择题 填空题为主

  • 重点:一些概念

  • 2.1 Verilog HDL的语言要素

2.1.2 注释符
	多行注释不允许嵌套,但是单行注释可以嵌套在多行注释中
2.1.3 标识符
	任意一组字母、数字、$符号和_(下划线)的组合
	字母区分大小写,并且第一个字符必须是字母或下划线
2.1.4 关键字
	所有关键字都是小写的
	例如,ALWAYS不是关键字,它只是标识符,与always(关键字)是不同的。
2.1.5 数值
	四种基本的逻辑数值状态
	表 2.1-2 四值电平逻辑
	1. 整数及其表示
	注意:
	(1)下划线分开
	(2)当数字没有说明位宽时,默认为32位
	(5)定义位宽和实际位宽
	(6)?
  • 2.2 数据类型
2.2.1 物理数据类型
1.连线型
	表2.2-2 连线型数据类型及其功能说明
	trireg 线网 具有电荷保持特性的连线型(特例) 
	连线型	默认的驱动强度(strong1,strong0) p35
	trireg 	默认的电荷强度为medium
2. 寄存器型
	reg和wire型区别:
		reg型数据保持最后一次的赋值,
		wire型数据需要有持续的驱动
2.2.2 连线型和寄存器型数据类型的说明
	缺省的连线型数据的默认类型为1位(标量)wire类型
2.2.3 存储器型
声明格式
	reg 位宽 变量名称列表 个数
例2.2-3
例2.2-4
2.2.4 抽象数据类型
1.整型
	整型数据域32位寄存器数据在实际意义上相同
2.时间型
3.实型
4.参数型
  • 2.3 运算符
表2.3-1 Verilog HDL中的运算符和优先级
2.3.1 算术运算符(+ - * / %)
	注意问题:	(1)算后运算结果的位宽。最长的操作数决定。
2.3.2 关系运算符(> < >= <=)
	0 1 x
2.3.3  相等关系运算符(== != === !==)
	1 0 x 逻辑等式运算符 case等式运算符
	表2.3-2
例2.3-4
2.3.4 逻辑运算符(&& || !)
	0 1 x
	0&&x=0 1||x=1
2.3.5 按位运算符(~ & | ^ ^~)
按右端对齐 高位0补齐 位宽较大者
例2.3-5
2.3.6 归约运算符(& | ^)
	单目运算符 缩位运算符 产生1位逻辑值
	运输过程:从低到高
	例2.3-6
2.3.7 移位运算符(<< >>)
2.3.8 条件运算符(?:)
	1 0 x
表2.3-7 条件表达式为不定态时的结果产生规则
	0-0=0 1-1=1 其余-其余=x
例2.3-8
2.3.9 连接和复制运算符({} {{}})
例2.3-9
	
  • 2.4 模块
2.4.1 模块的基本概念
图2.4-1 基本的模块结构组成
	(1)模块的开始与结束
	(2)模块端口定义
	(3)模块数据类型说明
	(4)模块逻辑功能描述
例2.4-1
2.4.2 端口
定义
引用方式

第二章 作业【Verilog】

第3章 Verilog HDL 程序设计语句和描述方式

  • 考题:以综合题为主
  • 重点:三种建模方式
  • 3.1 数据流建模
1.显式连续赋值语句
assign
2.隐式连续赋值语句
例3.1-1
例3.1-2
3.注意事项
  • 3.2 行为级建模
表3.2-1 Verilog HDL 行为描述语句及其可综合性
3.2.1 过程语句
1.initial过程语句:同时从0时刻开始并行执行
2.always 过程语句:只要满足always后面的敏感时间列表,就执行语句块
	边沿敏感型 posedge negedge
	电平敏感型
3.注意事项
	过程语句中,被赋值信号必须定义为reg类型	
例3.2-x

3.2.2 语句块
1.串行语句块
	begin end:依据块中的排列次序逐条执行 延迟时间是相对于前一条语句执行结束的相对时间
2.并行语句块
	fork join:同时开始执行
例3.2-6
表3.2-2 串行语句块和并行语句块对比

3.2.3 过程赋值语句
1.阻塞赋值语句(=)
2.非阻塞赋值语句(<=)
例3.2-7

× 3.2.4 过程连续赋值语句

3.2.5 条件分支语句
1.if语句
2.case语句
锁存器
例3.2-14
casex casez
表3.2-4

3.2.6 循环语句
1.forever语句
	initial过程语句中
2.repeat语句
3.while语句
4.for语句
例3.2-19
  • 3.3 结构化建模
3.3.1 模块级建模
例3.3-1

3.3.2 门级建模
表3.3-2 Verilog HDL 中常用的内置门级元件
	特例:not 多输出门
	
× 3.3.3 开关级建模

第三章 作业【Verilog】

第4章 数字逻辑电路设计方法

第四章 数字逻辑电路设计方法【Verilog】

  • 考题:以综合题为主

  • 重点:六种组合电路 三种时序电路 有限同步状态机

  • 4.2 组合电路的设计

4.2.1 数字加法去
4.2.2 数据比较器
4.2.3 数据选择器
4.2.4数字编码器
4.2.5数字译码器
4.2.6奇偶校验
  • 4.3 时序电路的设计
4.3.1 触发器
4.3.2 计数器
4.3.3 移位寄存器
4.3.4 序列信号发生器
  • 4.4 有限同步状态机

第5章 仿真验证与Testbench编写

  • 考题:以填空题 综合题测试编写为主
  • 重点:测试testbench的编写
  • 5.1 Verilog HDL 电路仿真和验证概述
  • 5.2 Verilog HDL 测试程序设计基础
图5.5-2 典型的Testbench
	module 仿真模块名;	//无端口列表
		各种输入、输出变量定义
		数据类型说明
		//其中激励信号定义为reg型
		//显示信号定义为wire型
		integer
		parameter
		
		待测试模块调用
		
		激励向量定义
	endmodule
	
例5.2-1
  • 以下是自学部分
  • 5.3 与仿真相关的系统任务
  • 5.5 任务和函数
  • 5.9 编译预处理语句
5.9.3 仿真时间标度
	timescale

第6章 Verilog HDL 高级程序设计举例

第六章 Verilog HDL 高级程序设计举例【Verilog】

  • 考题:以综合题为主
  • 重点:状态机 存储器
状态机
交通灯
存储器

2023-1-1 15:28:23

最后

2022-12-28 10:24:15

2023-1-3 15:57:16

这篇博客能写好的原因是:站在巨人的肩膀上

这篇博客要写好的目的是:做别人的肩膀

开源:为爱发电

学习:为我而行文章来源地址https://www.toymoban.com/news/detail-435254.html

到了这里,关于期末复习【Verilog】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Java应用程序开发】【期末复习题】【2022秋】【答案仅供参考】

    答题时长:90分钟 试卷共包含57道题目,其中单选题30道,多选题10道,判断题10道,简答题5道,程序题2道。 1.定义一个类,必须使用的是( ) A.public B.class C.interface D.static 2.抽象方法:( ) A.可以有方法体 B.不可以出现在非抽象类中 C.有方法体的方法 D.抽象类中的方法都是抽

    2024年02月11日
    浏览(46)
  • Powershell删除文本指定内容所在行以下内容

    需求:批量获取文本指定内容所在行以下内容(含当前行)   解决方案:使用Powershell脚本处理   案例: 获取当前文件夹下所有txt文件 含文本\\\"4\\\"所在行 以下内容(含当前行) 如果有多行包含文本\\\"4\\\",取第一个所在行以下内容(含当前行)   1.查看当前文件夹内容   2.右键执

    2024年01月20日
    浏览(36)
  • IDEA报错:前言中不允许有内容

    idea启动项目提示前言中不允许有内容 解决方法: 首先修改设置:IDEA–File–Settings–File Encodings–with No BOM 选中报错文件右键移除Bom 如果遇到java: 程序包org.springframework.boot不存在的问题参考:【完美解决】java: 程序包org.springframework.boot不存在的解决方法_猿月亮的博客-CSDN博客

    2024年02月07日
    浏览(34)
  • 【error】svn 清理以下路径失败 原始内容不存在

    目前我们这边的内网代码是通过 TortoiseSVN 进行版本管理的,平时用着也挺好的,没碰到什么大问题。 但是,今天碰到了一个比较棘手的问题,在这里做一下记录,以方便自己和有需要的朋友在之后碰到该类问题时有个参考。 具体的错误现象如下图所示: 导致上述现象的步骤

    2024年02月15日
    浏览(34)
  • 【期末复习】微信小程序复习大纲

    前言:         这周开始进入期末复习周,没时间看C/C++、linux等知识了,先把期末考试必考的知识捋一遍。 目录 第一章        微信小程序入门 一、填空题 二、判断题 三、选择题 四、简答题 第二章        微信小程序页面制作 一、填空题 二、判断题 三、选择题

    2024年02月04日
    浏览(45)
  • 设置浏览器显示小于12px以下字体的三种方法

    以往设计图给的字号一般最小就是12px, 开发人员一般是使用谷歌浏览器来进行调试运行。 谷歌浏览器上显示字体最小为12px,css设置font-size:10px,运行代码显示结果仍然是12px大小,但是挡不住甲方有时就是强调使用的字号,必须是特别小的字号,就比如说某些网站设计的噱

    2023年04月12日
    浏览(39)
  • 蓝牙开发之-Android12及以下权限申请 及蓝牙详细流程图

    一、蓝牙开发之-权限申请, 直接上代码 第一步、在 AndroidManifest.xml 中 声明下需要的权限 第三步、权限拿到了,就扫描、连接、进行通信 吧 附上流程图

    2024年04月13日
    浏览(51)
  • 移动应用开发期末复习(自用复习勿转)

    主要考察实验中的通知:notification,service。数据库的增删改查操作结合界面的一些操作。 Android是一种基于Linux的软件平台和操作系统,采用了软件堆层(Software Stack)的架构,由下往上分别是Linux内核层、硬件抽象层、系统运行时库层(又称为中间件层)、应用程序框架层和系

    2024年02月05日
    浏览(42)
  • 【机器学习】【期末复习】有关机器学习的计算题可供期末复习参考(带本人手写解答与思考)

    本文为学校课程《机器学习》的期末复习材料,主要是关于一些机器学习模型的计算题的解答过程。 给定一个二维空间的数据集: T={(2,3),(5,4),(9,6),(4,7),(8,1),(7,2)},请构造一个平衡 KD 树。 拓展: k近邻-如何构造平衡kd树? 构建KD树 利用 ID3 与 C4.5 算法构建决策树模型,要求写出

    2024年02月11日
    浏览(39)
  • 云计算复习之Hive数据仓库期末复习整理

    声明:                 1. 本文针对的是一个知识的梳理,自行整理以及方便记忆               2. 若有错误不当之处, 请指出 一、hive的定义与理解 首先,hive是一个构建于hadoop集群之上的数据仓库应用。那么,得先了解一下什么是数据仓库?数据仓库是一个数据集合,用于

    2024年02月04日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包