编写仿真文件:
`timescale 1ns / 1ps module sim_myLed( ); reg clk; //输入时钟 reg rst_n; //输入复位 //reg [27:0] cnt1; //定义一个计数器计时, how to sew this? wire led; myLed later( .clk(clk), .rst_n(rst_n), //.cnt1(cnt), .led(led) ); initial begin rst_n = 1; clk=1; #100; $finish; //wait for user to click run button simulate, then start sim end always #100 clk = ~clk; // 125M ,as the simulation staeted, it works endmodule 写完仿真文件后,在sim_myLed上右击,set as Top,然后进行仿真
这里需要说明一下,仿真起来要和编写的仿真文件是相关的。仿真文件的编写,下面分析一下。
reg clk; //输入时钟 reg rst_n; //输入复位 //reg [27:0] cnt1; //定义一个计数器计时, how to sew this? wire led; 这三个是当前仿真文件下申明的变量,其中输入时reg,输出是wire。
myLed later( .clk(clk), .rst_n(rst_n), //.cnt1(cnt), .led(led) ); 这个叫做例化。可以理解为一个类的实例化。
其中,myLed是之前的设计文件,later是实例化的名字。
.clk(clk)就是参数,.clk()就是仿真文件里面的变量,括号里面就是myLed里面的。就相当于绑定在一起了。
(类比面向对象中类的实例化)
initial begin rst_n = 1; clk=1; #100; $finish; //wait for user to click run button simulate,then start sim end always #100 clk = ~clk; // 125M ,as the simulation staeted, it works 这里initial下面这一段是启动仿真软件是执行的部分,也就是仿真的初始化,#100就是延时100单位时间,$finish就是等待用户进行下面的仿真。
always就是从头到尾一直执行的部分,这里一是是100个单位时间进行一次翻转,也就是时钟信号了。
3.4 约束文件
新建约束文件就略过了。
这里需要知道自己的开发板对应的IO口。
我用的开发板是这个:传送门
先点击左侧Schematic
再双击威廉希尔官方网站
图上面的IO Ports
最后再下面选择Package Pin(需要对照原理图的接线)
I/O std 先不要动,还没深入了解
编写仿真文件:
`timescale 1ns / 1ps module sim_myLed( ); reg clk; //输入时钟 reg rst_n; //输入复位 //reg [27:0] cnt1; //定义一个计数器计时, how to sew this? wire led; myLed later( .clk(clk), .rst_n(rst_n), //.cnt1(cnt), .led(led) ); initial begin rst_n = 1; clk=1; #100; $finish; //wait for user to click run button simulate, then start sim end always #100 clk = ~clk; // 125M ,as the simulation staeted, it works endmodule 写完仿真文件后,在sim_myLed上右击,set as Top,然后进行仿真
这里需要说明一下,仿真起来要和编写的仿真文件是相关的。仿真文件的编写,下面分析一下。
reg clk; //输入时钟 reg rst_n; //输入复位 //reg [27:0] cnt1; //定义一个计数器计时, how to sew this? wire led; 这三个是当前仿真文件下申明的变量,其中输入时reg,输出是wire。
myLed later( .clk(clk), .rst_n(rst_n), //.cnt1(cnt), .led(led) ); 这个叫做例化。可以理解为一个类的实例化。
其中,myLed是之前的设计文件,later是实例化的名字。
.clk(clk)就是参数,.clk()就是仿真文件里面的变量,括号里面就是myLed里面的。就相当于绑定在一起了。
(类比面向对象中类的实例化)
initial begin rst_n = 1; clk=1; #100; $finish; //wait for user to click run button simulate,then start sim end always #100 clk = ~clk; // 125M ,as the simulation staeted, it works 这里initial下面这一段是启动仿真软件是执行的部分,也就是仿真的初始化,#100就是延时100单位时间,$finish就是等待用户进行下面的仿真。
always就是从头到尾一直执行的部分,这里一是是100个单位时间进行一次翻转,也就是时钟信号了。
3.4 约束文件
新建约束文件就略过了。
这里需要知道自己的开发板对应的IO口。
我用的开发板是这个:传送门
先点击左侧Schematic
再双击威廉希尔官方网站
图上面的IO Ports
最后再下面选择Package Pin(需要对照原理图的接线)
I/O std 先不要动,还没深入了解