Verilog夏宇闻知识点学习

1-7章

1.四选一多路选择器:①门级建模 ②数据流建模(逻辑方程和条件操作语句)

2.上升下降关断延迟看波形。

3.脉动进位计数器由四个T触发器构成。

4.阻塞和非阻塞(后者常常用于流水线和互斥数据传输的建模)

5.过程赋值语句:在被赋予变量后,值不变直到下一次改变赋值  initial和always是行为级建模中的两种结构化过程语句。

6.时序控制:①基于延迟的时序控制 ②基于事件的时序控制 ③基于电平敏感的时序控制,

①对于过程赋值,提供了三种类型的延迟

常规延迟控制(位于赋值语句的左边)  #10 y = 1;  推迟了整个赋值语句的时间

赋值内嵌延迟控制 y = #10 x + 1; 仅仅推迟了赋值那一小块的时间,相当于将计算好的值保存在临时变量中

零延迟控制 #0,带有零延迟的控制语句在执行相同语句的后面执行,在实际设计中尽量不要使用。

 

②Verilog中,事件是指某一个寄存器或线网变量的值发生了变化

Verilog提供了四种事件控制:①常规事件控制 ②命名事件控制 ③OR事件控制 

①@控制,执行的条件发生变化,语句执行 例如@(posedge clk) q = d ②未懂用event声明,->触发 ③在敏感列表中,任何一个敏感信号的变化都能够触发语句块的执行 例如always@(reset or clock or d )等待任何一个改变都继续执行 or也可以用,代替。

 

③wait (count_enable) #20 count = count +1,只有括号内为真时,才继续执行。

 

7.case语句可以嵌套,且在一条case中不允许有多条default。

8.循环语句只能在always和initial中使用,while for repeat forever      for经常用于对数组或存储器进行初始化,一般用于有固定开始和结束条件的循环,若循环一次用while

reg [行] buf [列]  repeat 例 数据缓冲模块,每一个时钟上升沿存入一个数据

9.顺序块和并行块:顺序begin...end 并行fork...join 前者遇到延迟或者时间控制时,相对于上一条,后者相对于语句块执行时刻。 

块语句的特点:1.嵌套使用 2.块可以具有自己的名字,也可以通过层次名进行引用访问 3.命名块可以被禁用,停止其访问。 例如:begin:block ........  end 注意块命名加:

10.未懂 生成块:generate endgenerate指定其范围。 generate用于创建模块的多个实例化,或者有条件的实例化代码块。generate循环的语法与for循环语句的语法很相似。但是在使用时必须先在genvar声明中声明循环中使用的索引变量名,然后才能使用它。genvar声明的索引变量被用作整数用来判断generate循环,可以使用于多个generate循环中,最好给生成块命名,格式为for()begin:name。

一.循环生成语句 :生成块的本质是使用循环内的一条语句来代替多条重复Verilog语句,genvar用于声明生成变量,其只能用于生成块中,在确定后的仿真代码中,生成变量不存在,生成变量的值只能由循环语句来改变  

11.有限状态机(用case语句描述):两段式和三段式,前者待定,后者分为三段:①always时序 次态寄存器迁移到现态寄存器(注意使用非阻塞赋值 ②描述次态寄存器输出 ③状态转移条件判断,见第七章P106。 注意定义状态和寄存器类型reg

看输出有几个状态,比如红绿黄灯,parameter ....  reg[1:0] hwy contry(输出)   

看状态机有几个状态,若有4个状态,则需要两个二进制来表示,parameter A = 2'b0..... reg [1:0] state,next_state........   

  • 二段式状态机:用两个 always 模块来描述状态机,其中一个 always 模块采用同步时序描述状态转移;另一个模块采用组合逻辑判断状态转移条件,描述状态转移规律以及输出。不同于一段式状态机的是,它需要定义两个状态,现态和次态,然后通过现态和次态的转换来实现时序逻辑。
  • 三段式状态机,其中一个 always 模块采用同步时序描述状态转移;另一个描述状态转移条件,描述状态转移规律另一个描述输出

 

posted @   十点三十睡觉  阅读(295)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示