verilog 层次化设计语言调用的问题终于知道了

         这几天一直在学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,到这里,也就讲完了顶层和底层的语言调用

也算是用语言实现顶层描述吧,跟原理图实现顶层描述意义一样。

 
  • 17
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值