FPGA基础知识-实用建模技术

news/2024/11/9 9:57:58/

目录

学习目标:

学习内容:

1.过程连续赋值

2.改写参数

3.条件编译和执行

4.时间尺度

5.常用的系统任务

学习时间:

学习总结


学习目标:

提示:这里可以添加学习目标

1.掌握怎样在模块调用时用defparam语句重新定义参数值J解释条件编译和Verilog 插述部件的执行。·

2.认识和理解系统任务,如文件输出、显示层次、选通显示( strobing )、随机数生成、存储器初始化和值变转储等系统任务。

3.描述过程连续赋值语句assign,deassign,force和 release,解释它们在建模和调试时的重要性。


学习内容:

提示:这里可以添加要学的内容

1.过程连续赋值

       关键字assign 和 deassign 用来表示第一类过程连续赋值语句。过程连续赋值语句的左边只能是一个寄存器或-个拼接的寄存器组,不能是线网类型变量的部分位选择、位选择或寄存器组。过程连续赋值语句可以改写〈覆盖)常用的过程赋值的结果。过程连续赋值一般只用于受控制的一段时间内。

        在中我们曾建立过-一-个具有异步复位端、由下降沿触发的D触发器的模型。,我们将改用assign 和 deassign语句来建立同样的D_FF模型。

       关键字force和 release用来表示过程连续赋值语句的第二种形式。它们既可以用来改写(覆盖〉寄存器上的赋值也可以改写(覆盖)线网上的赋值。force和 release语句的典型应用是在交.互式调试过程中。此时,某些寄存器或线网被强制赋值、并且提示对其他寄存器和线网的影响。建议不要在设计模块内部使用force和 release语句,它们应当只出现在激励中,或仅作为调试语句。

2.改写参数

       有两种方法改写(盖)参数值:通过defparan语句或通过模块调用参数赋值。

       正如前面在里所讨论的,参数可以在模块定义内定义。但是,在 Verilog模块编译过程中,参数值可以针对每个模块调用单独改变。这样就允许我们在编译时将一组组不同的参数值组合传递给每个模块,而不考虑预定义的参数值。

3.条件编译和执行

          正如前面在3.2.8节里所讨论的,参数可以在模块定义内定义。但是,在 Verilog模块编译过程中,参数值可以针对每个模块调用单独改变。这样就允许我们在编译时将一组组不同的参数值组合传递给每个模块,而不考虑预定义的参数值。

      有两种方法改写(盖)参数值:通过defparan语句或通过模块调用参数赋值。

4.时间尺度

      通常,在某次仿真中,一个模块中的延迟值需要用某个时间单位来定义,比如 1 Ms。然而,另一个模块中的延迟值需要用另一个时间单位来定义.比如100 ns。Verilog HDL允许用'timescale编译指令为模块指定参考时间单位。

5.常用的系统任务

  Verilog语言中的一些常用系统任务,它们各自适用于不同的场合。我们将讨论用于文件输出、显示层次、选通显示( strobing )、随机数生成、内存初始化和值变转储等的系统任务”。


学习时间:

提示:这里可以添加计划学习的时间

20230616


学习总结

提示:这里统计学习计划的总量

1.过程连续赋值语句可用于改写(覆盖)寄存器和线网上的赋值。assign和 deassign可以改写(覆盖)寄存器上的赋值。force和release可以改写(覆盖)寄存器和线网上的赋值。assign和 deassign可以用在实际的设计中。force 和 release可以用于调试。

2.可以用defparam语句或者在模块调用中传递新值来改写(覆盖)已在模块中定义的参数,在模块调用中,可以按参数列表的参数顺序或者名字关联的方式给参数赋值。推荐使用名字关联的方式给参数赋值。

3.设计的某些部分的代码可以通过使用`ifdef,' ifndef,'elsif,'else和`endif等指令有条件地编译。在编译时用`define语句定义编译标志。

4.Verilog仿真器中的代码执行也可以通过系统任务$test$plusargs的方式有条件地进行.在运行时通过+<flag_name>定义执行标志

5.Verilog 中最多可以为写操作打开30个文件。在多通道描述符中为每个文件赋予1位。多通逍描述符可用于写多个文件。IEEE Standard Verilog Hardware Description Language文档描述了更先进的进行文件IO操作的方式。

6.选通显示是一种在某确定时刻或者由某事件触发的显示值的方式,其显示的执行安排在同时刻执行的其他语句都执行完毕之后进行。

7.存储器可以用数据文件的数据进行初始化。数据文件包含地址和数据。地址也可以在存储器初始化任务中指定。

可以使用系统任务$random生成随机数。它们被用做生成随机测试向量。任务$random 既可以生成正数,也可以生成负数。

值变转储文件是许多设计者在后处理工具中进行调试时使用的一种通用格式。Verilog 允许将所有的或者部分选定的模块变量转储到VCD文件中。多种系统任务可以用于此目的。


http://www.ppmy.cn/news/428274.html

相关文章

简单学生管理系统

简单学生管理系统(Java)_封奚泽优的博客-CSDN博客https://blog.csdn.net/weixin_64066303/article/details/130667107?spm1001.2014.3001.5501 转载请注明出处&#xff0c;尊重作者劳动成果。 目录 前期准备&#xff1a; 数据库的连接&#xff1a; 用户账号类&#xff1a;…

海盗王封WPE的方法

在游戏中&#xff0c;合当地使用WPE可以减轻玩家的重复操作&#xff0c;但是利用WPE刷bug作弊&#xff0c;会影响游戏平衡&#xff0c;故意大量发包还会导致全服集体卡顿。因此&#xff0c;很多开服的GM对此深恶痛绝。 以海盗王游戏为例&#xff0c;怎么封WPE呢&#xff1f; 首…

加勒比海盗船——最优装载问题(趣学算法C++代码和python代码)

C代码&#xff1a; #include<iostream> #include<algorithm> #include<conio.h> const int N1000005; using namespace std; double w[N];//古董的重量数组 int main() {double c;//载重量cint n;//古董个数ncout<<"请输入载重量c及古董个数n&am…

atlas单机模式代码_单机模式对海盗游戏《ATLAS》的重要作用,为调整多人模式做准备...

最近&#xff0c;海盗冒险生存游戏《ATLAS》上线了它的单机模式&#xff0c;这使得很多小白玩家都很兴奋&#xff0c;因为在这个模式里就只有自己一个人&#xff0c;无论是进行探险、寻宝还是挑战BOSS玩家都不用担心来自其他玩家给予的压力。但是大神玩家却对此感到不满&#x…

HTML小游戏10 —— 休闲类游戏《解救海盗船长》(附完整源码)

💂 网站推荐:【神级源码资源网】【摸鱼小游戏】🤟 风趣幽默的前端学习课程:👉28个案例趣学前端💅 想寻找共同学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】💬 免费且实用的计算机相关知识题库:👉进来逛逛给大家安利一个免费且实用的前端刷题(面经大全)…

趣学算法NYOJ加勒比海盗船

题目描述: 在北美洲东南部&#xff0c;有一片神秘的海域&#xff0c;那里碧海蓝天、阳光明媚&#xff0c;这正是传说中海盗最活跃的加勒比海&#xff08;Caribbean Sea&#xff09;。17世纪时&#xff0c;这里更是欧洲大陆的商旅舰队到达美洲的必经之地&#xff0c;所以当时的海…

【贪心】加勒比海盗船-最优装载问题

题目 在北美洲东南部&#xff0c;有一片神秘的海域&#xff0c;那里碧海蓝天、阳光明媚&#xff0c;这正是传说中海盗最活跃的加勒比海。17 世纪时&#xff0c;这里更是欧洲大陆的商旅舰队到达美洲的必经之地&#xff0c;所以当时的海盗活动非常猖獗&#xff0c;海盗不仅攻击过…

贪心算法-加勒比海盗船——最优装载问题

实际问题&#xff1a;一群海盗截获了一艘装满各种金银珠宝和古董的货船&#xff0c;每一件宝物都价值连城一旦打碎就失去了价值。海盗船的载重量为C&#xff0c;每件宝物的重量为Wi&#xff0c;海盗们应该如何把尽可能多的宝物装上船&#xff1f; 问题分析&#xff1a;这是一个…