verilog 层次化设计语言调用的问题终于知道了
2012-03-31 23:12
253 查看
这几天一直在学verilog ,但是我不想始终在一个文件里面写代码,就像写单片机驱动代码一样,很多人都是一个.c文件,偶是有目标,有追求的人,哈哈,我也要写很多个.v文件互相调用,但是我在网上找了好多,都没有这方面的介绍,可能是这个问题太基础了,或则是我太笨了,都不管了,我记下来,作为初学脚步。
我写的很简单,就是点亮LED,但是我是通过2个.v文件实现,下面具体讲解步骤,对于编程细节,我就不多讲了,主要是说如何实现的,如果对编程还不明白的,那么就先得入门咯,哈哈。
首先建立工程,我建立工程文件名字是 led ,因此顶层文件就必须是 led.v,底层文件就任意了,我这里建立的底层文件名字为 led_mod 建立好后如下图
然后打开led_mod 开始编辑底层代码如下
module led_mod(rst,clk,led1,led2);
input rst;
input clk;
output led1,led2;
reg clka;
reg [31:0] count;
reg led1,led2;
always @(posedge clk)
begin
count<=count+1;
if(count==25000000)
begin
count<=0;
clka<=~clka;
end
led2<=clka;
end
always @(posedge clka)
begin
led1=~led1;
end
endmodule
(意思为一个LED是1S 闪烁一次,一个是2S 闪烁一次)
然后关键到了:
我们编辑好这个底层文件后,不能直接去编译,我们要去file--creat/update---creat verilog.......
到了这里以后,我们底层的代码就算是over 了,然后我们打开顶层的 led.v 文件编写如下代码
module led(clk,led1,led2);
input clk;
output led1,led2;
wire clk;
wire led1,led2;
led_mod
(
.clk(clk),
.led1(led1),
.led2(led2)
);
endmodule
(其实就是把底层的端口隐射到顶层,实现了一个调用底层文件的作用)
然后我们再编译和配置端口,下载等等,就OK,到这里,也就讲完了顶层和底层的语言调用
也算是用语言实现顶层描述吧,跟原理图实现顶层描述意义一样。
我写的很简单,就是点亮LED,但是我是通过2个.v文件实现,下面具体讲解步骤,对于编程细节,我就不多讲了,主要是说如何实现的,如果对编程还不明白的,那么就先得入门咯,哈哈。
首先建立工程,我建立工程文件名字是 led ,因此顶层文件就必须是 led.v,底层文件就任意了,我这里建立的底层文件名字为 led_mod 建立好后如下图
然后打开led_mod 开始编辑底层代码如下
module led_mod(rst,clk,led1,led2);
input rst;
input clk;
output led1,led2;
reg clka;
reg [31:0] count;
reg led1,led2;
always @(posedge clk)
begin
count<=count+1;
if(count==25000000)
begin
count<=0;
clka<=~clka;
end
led2<=clka;
end
always @(posedge clka)
begin
led1=~led1;
end
endmodule
(意思为一个LED是1S 闪烁一次,一个是2S 闪烁一次)
然后关键到了:
我们编辑好这个底层文件后,不能直接去编译,我们要去file--creat/update---creat verilog.......
到了这里以后,我们底层的代码就算是over 了,然后我们打开顶层的 led.v 文件编写如下代码
module led(clk,led1,led2);
input clk;
output led1,led2;
wire clk;
wire led1,led2;
led_mod
(
.clk(clk),
.led1(led1),
.led2(led2)
);
endmodule
(其实就是把底层的端口隐射到顶层,实现了一个调用底层文件的作用)
然后我们再编译和配置端口,下载等等,就OK,到这里,也就讲完了顶层和底层的语言调用
也算是用语言实现顶层描述吧,跟原理图实现顶层描述意义一样。
相关文章推荐
- verilog 层次化设计的简单问题 -- 如何调用底层模块
- verilog 层次化设计的简单问题 -- 如何调用底层模块
- Verilog的层次化设计
- C语言课程设计 问题 G: 整数连接
- 汇编语言中参数调用问题
- [转载]Verilog语言设计增加延时的正确方法
- swift 与 C 语言混合编程,主要关于指针变量的调用问题
- Verilog HDL语言中的模块调用
- 如果网页内容需要支持多语言,你会怎么做?在设计和开发多语言网站时,有哪些问题你必须要考虑?
- C语言课程设计-迷宫问题的求解
- 王爽 -- 汇编语言课程设计2一些问题记录
- Atitit.编程语言原理---方法重载的实现与设计 调用方法的原理
- 如果网页内容需要支持多语言,你会怎么做?在设计和开发多语言网站时,有哪些问题你必须要考虑?
- 汇编语言的过程调用的几个问题
- c#编写dll 供其他语言调用问题
- 用Quartus II + Verilog 做FPGA/CPLD设计/仿真的几个基本问题(自己总结的,对初学者有效)
- Atitit.编程语言原理---方法重载的实现与设计 调用方法的原理
- (笔记)Quartus II 中用在Verilog文件调用VHDL模块传入参数问题
- 将C语言编译成DLL并用C#进行调用以及关于从C#传输中文路径到C的DLL中打开文件的问题
- Atitit.编程语言原理---方法重载的实现与设计 调用方法的原理