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 的报错,后面又自己好了,没找到原因。

参数化设计(多次调用同一子模块,critical warning,引脚constraint sources)的更多相关文章

  1. OkHttp完全解析之整体调用流程

    前言:阅读好的代码如同观赏美景一样的美妙 OkHttp是一个Square公司在github开源的Java网络请求框架,非常流行.OkHttp 的代码并不是特别庞大,代码很多巧妙的实现,非常值得学习. ...

  2. [转载]Quartus ii 一些Warning/Eeror分析与解决

    我会在此基础上继续添加 原文地址:ii 一些Warning/Eeror分析与解决">Quartus ii 一些Warning/Eeror分析与解决作者:yanppf 注:http:// ...

  3. quartus II Warning 好的时序是设计出来的,不是约束出来的

    一.Warning (15714): Some pins have incomplete I/O assignments. Refer to the I/O Assignment Warnings r ...

  4. Python20-Day05

    一.模块与包 1.模块 什么是模块? 在python中,模块可以分为四个通用类别: 1. 使用python编写的.py文件 2. 已经被编译为共享库或DLL的c或者c++扩展 3. 把一系列模块组织到 ...

  5. HANA SQL

    约束 注释 你可以给你的 SQL 语句添加注释来增加可读性和可维护性. SQL 语句中注释的分隔如下: l  双连字符“--”.所有在双连字符之后直到行尾的内容都被 SQL 解析器认为是注释. l  ...

  6. Matlab 进阶学习记录

    最近在看 Faster RCNN的Matlab code,发现很多matlab技巧,在此记录: 1. conf_proposal  =  proposal_config('image_means', ...

  7. python logging模块可能会令人困惑的地方

    python logging模块主要是python提供的通用日志系统,使用的方法其实挺简单的,这块就不多介绍.下面主要会讲到在使用python logging模块的时候,涉及到多个python文件的调 ...

  8. oracle rac理解和用途扩展

    Oracle RAC的优势在于利用多个节点(数据库实例)组成一个数据库,这样在保证了数据库高可用性的情况下更充分的利用了多个主机的性能,而且可以通过增加节点进行性能的扩展.实现Oracle RAC需要 ...

  9. Nagios监控lvs服务

    1在lvs server上安装nrpe客户端: 1.1,rpm方式安装nrpe客户端 下载地址:http://download.csdn.net/detail/mchdba/7493875 [root ...

随机推荐

  1. 批量安装Windows系统

    今天我们利用Windows server 2019自带的Windows部署服务通过网络批量安装Win 10 一.Windows服务 1)WDS WDS(Windows Deployment Servi ...

  2. Linux vs Unix - Linux与Unix到底有什么不同?

    来自:Linux迷链接:https://www.linuxmi.com/linux-vs-unix.html Linux和Unix这两个术语可以互换地用来指同一操作系统.这在很大程度上是由于他们惊人的 ...

  3. web安全之自己写一个扫描器

    web安全之自己写一个扫描器 自己来写一个简单的目录扫描器,了解扫描器的运转机制和原理,因为python写脚本比较容易所以用python写一个网站目录扫描器. 第一步:我们需要导入所需要的库 1 im ...

  4. swagger在线api文档搭建指南,用于线上合适么?

    在上一篇文章中,我们讲解了什么是 api,什么是 sdk: https://www.cnblogs.com/tanshaoshenghao/p/16217608.html 今天将来到我们万丈高楼平地起 ...

  5. react 疑问集锦

    在 setState 后未 re-render function component 初始化调用接口

  6. Nacos源码系列—订阅机制的前因后果(下)

    点赞再看,养成习惯,微信搜索[牧小农]关注我获取更多资讯,风里雨里,小农等你,很高兴能够成为你的朋友. 项目源码地址:公众号回复 nacos,即可免费获取源码 事件发布 在上一节中我们讲解了在Noti ...

  7. 项目中导入本地jar包问题

    1. 问题 一个Maven项目,需要依赖一个本地jar包,以如下方式引用: <dependency> <groupId>xxx.sdk</groupId> < ...

  8. nginx 主运行配置详解(nginx.conf)

    #==基础配置==# user nginx; #设置运行用户,当运行NGINX时,进程所使用的用户,则进程拥有该用户对文件或目录的操作权限. worker_processes 4; #设置工作进程数量 ...

  9. python函数学习的总结

    python函数 part1 函数的作用: 函数以功能(完成一件事)为导向 随调随用减少代码重复性 增强代码可读性 函数的结构: def 函数名(): 函数体 函数的返回值 return:在函数中遇到 ...

  10. 题解 P7075 [CSP-S2020] 儒略日

    当时考场上因为这个炸掉,一年后回来复仇. 这里提供一个与大多数人不一样的做法. 首先考虑一个简单一些的问题,怎么应付单个询问? 不难想到,我们对于一个日期,让他从 \(-4713\) 年 \(1\) ...