ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

参数化设计(多次调用同一子模块,critical warning,引脚constraint sources)

2022-05-12 12:32:02  阅读:155  来源: 互联网

标签:reset led constraint clk flash 引脚 sources 模块 defparam


1.设计定义:4个led灯以不同的频率各自闪烁。

2.设计输入:时钟信号,复位信号,led多位输出。

    思路:没有要求流水的效果,所以不需要叠加counter达到某一特定值来位移。只需要让每个灯的闪烁周期不同即可。所以可以直接调用led闪烁模块,设置不同的周期参数来实现。

 

 

`timescale 1ns/1ns
module led_flash_dif(
    clk,
    reset,
    led
    );
    input clk;
    input reset;
    output wire [3:0]led;
    
     led_flash  led_flash_1(
    .clk(clk),
    .reset(reset),
    .led(led[0])    
);
    defparam led_flash_1.number = 99999;
    
    led_flash  led_flash_2(
    .clk(clk),
    .reset(reset),
    .led(led[1])    
);
    defparam led_flash_2.number = 49999;
    
    led_flash  led_flash_3(
    .clk(clk),
    .reset(reset),
    .led(led[2])    
);
    defparam led_flash_3.number = 39999;
    
    led_flash  led_flash_4(
    .clk(clk),
    .reset(reset),
    .led(led[3])    
);
    defparam led_flash_4.number = 29999;
endmodule

 

3.综合

4.综合后仿真,功能验证

`timescale 1ns/1ns

module led_flash_dif_tb();
    
    reg s_clk;
    reg s_reset;
    wire [3:0]s_led;
    
    led_flash_dif  led_flash_dif_stim(
    .clk(s_clk),
    .reset(s_reset),
    .led(s_led)
    );
    
    initial s_clk = 1;
    always #10 s_clk = !s_clk;
    initial begin
    s_reset = 1'd1;
    #100;
    s_reset = 1'd0;
    #20001000;
    $stop;
    end
endmodule

5.布局布线

6.时序仿真,性能分析

7.板级调试,I/O口连接

 

注意

1.在一个模块中多次例化同一子模块时,要用不同的例化名称区分开来,而且每次例化的输出也最好用不同的输出位,输出多个端口。如果一直是同个输出端口,虽然不会报错,但一般情况下达不到效果。(模块例化子模块可以用defparam)

2.引脚文件为constraint sources,加入之后要set as target source 才能生效。

3.critical warning为比较重要的警告信息,应该看一看,如下:提示了多个模块用同个输出端口。

4.遇到了:cannot find port '' in this module 的报错,后面又自己好了,没找到原因。

 

 

标签:reset,led,constraint,clk,flash,引脚,sources,模块,defparam
来源: https://www.cnblogs.com/fbur/p/16261970.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有