verilog学习笔记

第一次使用verilog进行编程,所知道的太少,所以要学习和注意的东西就比较多,这次只是初级的编辑了一个mux 4选1选择器,也是学到了一些基础的知识的。
下面是我的代码模块

module top(in0,in1,in2,in3,out,sl);
input in0,in1,in2,in3;
output out;
input [1:0] sl;
reg out;
always@(in0 or in1 or in2 or in3 or sl) begin
case (sl[1:0])
2'b00: out=in0;
2'b01: out=in1;
2'b10: out=in2;
2'b11: out=in3;
endcase
end
endmodule 

进行RTL Viewer之后可以得到电路图
verilog学习笔记_第1张图片
之后就是进行波形的仿真。
verilog学习笔记_第2张图片
然后仿真结果如下
verilog学习笔记_第3张图片
目标完成。

通过这次学习,初步了解了Verilog的一些编程思路,当然也遇到了一些问题。
(1)、波形仿真一开始没有设置为时序模拟,所以仿真出来的结果是由延迟的,需要在assignments—settings下的波形仿真中选择为functional就好了,这样仿真出来的就没有延迟了。
(2)、在processing菜单下,有个Generate Functional Simulation Netlist 选项,运行下这个之后,先进行这个仿真,然后在进行波形仿真就不会出现错误了。
因为选择运行了功能仿真,默认是时序仿真。所以在进行功能仿真前,要生成功能仿真网表的。
(3)、关于代码的部分,需要对一些常用的语句进行熟悉,如case语句,if~else语句等功能性语句的编写,还有begin end的注意。
(4)、整型常量在Verilog中一般分为二进制(b或B),十进制(d或D),十六进制(h或H),八进制(o或O)。数字表达方式一般有<位宽><进制><数字>:如8‘b10101100表示位宽为8的数的二进制表示。

你可能感兴趣的:(FPGA)