龙芯杯备战3

本周总结:

这一周任务比较明确,主要是把数电的知识全部过一遍,然后学习verilog,并且开始了一些机组的学习,希望能从中有所收获。大体方向上都准备地较为不错,但是在看机组实验的手册的时候依旧出现了一些问题,还是不太清楚需要做些什么。

verilog 的学习


语法要点

  1. always 里面赋值左边必须申明为reg
  2. assign表达式左边必须申明为wire
  3. 阻塞赋值用<=
  4. 非阻塞赋值用=

1) 边沿触发生成寄存器的时序逻辑
2) 电平触发条件完整,生成组合逻辑
3) 电平触发条件不完整,生成锁存器的时序逻辑

结论:
声明成reg,不一定得到寄存器
未声明为reg,也可能得到寄存器

coding 要点

·如果是边沿触发的逻辑 比如always@(posedge clk),里面一律使用<=赋值
·如果是电平触发的逻辑,一律使用=赋值
逻辑简单用assign语句;逻辑复杂,用always语句
分支条件写完整,防止出现锁存器

系统任务与系统函数(task or function)

标准输出任务 $display等
文件管理任务 $fopen等
仿真控制任务 $monitor等
时间函数 $timeformat等
时间显示函数 $time等
其他 $random等

关于verilog的学习这一周主要还是看了不少代码,并对其进行了理解。通过对其进行注释,了解到了很多知识,关于注释的代码后续会传到github上。


下周目标:

下一周主要的任务主要是关于机组的学习以及基于学习手册的学习,希望能通过这一方面的学习,尽量快速地入门。