差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 | |||
快速上手step-mxo2-c [2021/09/13 22:18] gongyu [3. 工程仿真] |
快速上手step-mxo2-c [2021/11/24 14:27] (当前版本) haihang |
||
---|---|---|---|
行 23: | 行 23: | ||
- 选择Verilog Files(选择自己使用的硬件描述语言),Name填写LED_shining,然后点击New,这样我们就创建了一个新的设计文件LED_shining.v,然后我们就可以在设计文件中进行编程了{{ :diamond23.png |}} | - 选择Verilog Files(选择自己使用的硬件描述语言),Name填写LED_shining,然后点击New,这样我们就创建了一个新的设计文件LED_shining.v,然后我们就可以在设计文件中进行编程了{{ :diamond23.png |}} | ||
- 程序源码已经准备好,如下,将代码复制到设计文件LED_shining.v中,并保存。 | - 程序源码已经准备好,如下,将代码复制到设计文件LED_shining.v中,并保存。 | ||
+ | |||
<code verilog> | <code verilog> | ||
- | module LED_shining ( | + | |
- | input clk, //clk = 12mhz | + | module template ( |
- | input rst_n, //rst_n, active low | + | input clk, //clk = 12mhz |
- | output led1, //led1 output | + | input rst_n, //rst_n, active low |
- | output led2 //led2 output | + | output led1, //led1 output |
+ | output led2 //led2 output | ||
); | ); | ||
- | parameter CNT_1S = 12_000_000 - 1; //time 1S | + | parameter CNT_1S = 'd12_000_000 - 1; |
- | parameter CNT_05S = CNT_1S >> 1; //time 0.5S | + | parameter CNT_05S = CNT_1S>>1; |
+ | reg [23:0] cnt; | ||
- | reg [23:0] cnt; | ||
always @(posedge clk or negedge rst_n) begin | always @(posedge clk or negedge rst_n) begin | ||
- | if (!rst_n) cnt <= 1'b0; | + | if (!rst_n) cnt <= 1'b0; |
- | else if (cnt >= CNT_1S) cnt <= 1'b0; | + | else if (cnt >= CNT_1S) |
- | else cnt <= cnt + 1'b1; | + | cnt <= 1'b0; |
+ | else cnt <= cnt + 1'b1; | ||
end | end | ||
- | wire clk_div = (cnt>CNT_05S)? 1'b1 : 1'b0; | + | wire clkdiv = (cnt>CNT_05S)? 1'b1 : 1'b0; |
- | assign led1 = clk_div; | + | assign led1 = clkdiv; assign led2 = ~clkdiv; |
- | assign led2 = ~clk_div; | + | |
- | endmodule | + | endmodule |
</code> | </code> | ||
+ | |||
- 程序编写完成,需要综合,在软件左侧Process栏,选择Process,双击Synthesis Design,对设计进行综合,综合完成后Synthesis Design显示绿色对勾(如果显示红色叉号,说明代码有问题,根据提示修改代码),如图{{ :diamond24.jpg |}} | - 程序编写完成,需要综合,在软件左侧Process栏,选择Process,双击Synthesis Design,对设计进行综合,综合完成后Synthesis Design显示绿色对勾(如果显示红色叉号,说明代码有问题,根据提示修改代码),如图{{ :diamond24.jpg |}} | ||
- 通过综合工具,我们的代码就被综合成了电路,生成的具体电路,我们可以通过选择Tools → Netlist Analyzer查看(仅限Lattice的综合工具,第三方综合工具无法查看),如图{{ :netlist_analyzer.jpg |netlist_analyzer}} | - 通过综合工具,我们的代码就被综合成了电路,生成的具体电路,我们可以通过选择Tools → Netlist Analyzer查看(仅限Lattice的综合工具,第三方综合工具无法查看),如图{{ :netlist_analyzer.jpg |netlist_analyzer}} |