FPGA编程基础(一)--參数传递与寄存器使用
一、參数映射
參数映射的功能就是实现參数化元件。所谓的”參数化元件“就是指元件的某些參数是可调的,通过调整这些參数从而可实现一类结构类似而功能不同的电路。在应用中。非常多电路都可採用參数映射来达到统一设计。如计数器、分频器、不同位宽的加法器以及不同刷新频率的VGA视频接口驱动电路等。
參数传递
參数传递就是在编译时对參数又一次赋值而改变其值。
传递的參数是子模块中定义的parameter,其传递方法有以下两种。
- 时钟”#“符号
module cnt(
input clk,
input rst,
output reg[15:0] cnt_o
);
//定义參数化变量
parameter[15:0] Cmax = 1024; always @(posedge clk or negedge rst) begin
if(!rst)
cnt_o <= 0;
else
if(cnt_o == Cmax)
cnt_o <= 0;
else
cnt_o <= cnt_o + 1;
end endmodule
module param_counter(
input clk,
input rst,
output [15:0] cnt_o
); //參数化调用。利用#符号将计数器的模值10传入被调用模块
cnt #10 inst_cnt(
.clk(clk),
.rst(rst),
.cnt_o(cnt_o)
);
endmodule
- 使用defparamkeyword
參数传递时各个參数值的排列次序必须与被调用模块中各个參数的次序保持一致。而且參数值和參数个数也必须同样。
module param_counter(
input clk,
input rst,
output [15:0] cnt_o
); //參数化调用,利用#符号将计数器的模值10传入被调用模块
cnt inst_cnt(
.clk(clk),
.rst(rst),
.cnt_o(cnt_o)
);
//同过defparam改动參数
defparam inst_cnt.Cmax = 12;
endmodule
二、寄存器类型
- reg:经常使用的寄存器型变量。用于行为描写叙述中对寄存器类的说明,由过程赋值语句赋值;
- Integer: 32位带符号整型变量
但当一个reg型数据是一个表达式中的操作数时,它的值被当无符号值,即正值。
假设一个4位的reg型数据被写入-1,在表达式中运算时,其值被觉得是+15。比如:
2、integer寄存器类型
整数寄存器能够作为普通寄存器使用。使用整数型说明形式例如以下:
从位向量到整数的转换也能够通过赋值完毕。比如:
FPGA编程基础(一)--參数传递与寄存器使用的更多相关文章
- ionic新手教程第七课-简要说明几种界面之间的參数传递及优缺点
截至2016年4月13日19点32分,我公布的ionic新手教程,已经公布6课了, 总訪问量将近6000,平均每节课能有1000的訪问量.当中訪客最多的是第三课有2700的訪客. watermark/ ...
- java參数传递机制浅析
欢迎转载,转载请声明出处! ----------------------------------------- 前言: java语言中,參数的传递仅仅有一种机制.那就是值传递. 举例: 以下将通过几个 ...
- c++參数传递
定义: 形參:指出如今Sub 和Function过程形參表中的变量名.数组名,该过程在被调用前.没有为它们分配内存.其作用是说明自变量的类型和形态以及在过程中的作用.形參能够是除定长字符串变量之外的合 ...
- activity之间參数传递&&获取activity返回值&&activity生命周期
Activity之间參数传递 A activity想将參数传给B activity时能够利用Intent将消息带过去 Intent intent = new Intent(this,BActivity ...
- 再次学习javascript中的參数传递
javascript中的全部函数的參数传递都是依照值传递的,做了以下測试: function addTen(num){ num +=10; return num; } var count = ...
- Fragment进阶(四)----->參数传递3种写法
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/ ...
- 关于mybatis中,批量增删改查以及參数传递的问题
1.參数传递的问题 大多数情况下,我们都是利用map作为參数,而且大部分情况下都是仅仅有一个參数. 可是,我们也能够利用@param注解,来传入多个參数,此时,mybatis会自己主动将參数封装成ma ...
- int 0x13中断的參数传递
int 0x13中断向量所指向的中断服务程序实质上就是磁盘服务程序. 用途:将指定扇区的代码载入到内存的指定位置. 因此,在使用int 0x13中断时要将參数传递给服务程序: 比如:将指定扇区和载入的 ...
- C# 多线程參数传递
1.通过实体类来传递(能够传递多个參数与获取返回值),demo例如以下: 须要在线程中调用的函数: namespace ThreadParameterDemo { public class Funct ...
随机推荐
- 0_Simple__simpleCallback
学习回调函数的基本概念,并在CUDA的任务流中插入基于CPU的主机函数,作为回调函数使用. ▶ 源代码:没有用到的部分被注释起来了 /*multithreading.h*/ #ifndef MULTI ...
- DOM遍历 - 后代
jQuery children() 方法 children() 方法返回被选元素的所有直接子元素. 该方法只会向下一级对 DOM 树进行遍历. 您也可以使用可选参数来过滤对子元素的搜索. 下面的例子返 ...
- BZOJ-2330-[SCOI2011]糖果(差分约束)
Description 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的 ...
- 用Nodejs+Express搭建web,nodejs路由和Ajax传数据并返回状态,nodejs+mysql通过ajax获取数据并写入数据库
小编自学Nodejs,看了好多文章发现都不全,而且好多都是一模一样的 当然了,这只是基础的demo,经供参考,但是相信也会有收获 今天的内容是用Nodejs+Express搭建基本的web,然后呢no ...
- jQuery_事件学习
一.click事件 click事件----鼠标单击事件 $('.bt').click(function() { alert("本身的事件");}) 当class为bt的div被但单 ...
- 百度地图Marker优化方案
简介 在使用百度地图的时候,我们需要在地图上增加标注Marker来展示设置信息.随着用户需要不断增多,加载更多的Marker标注信息成为了一种奢望.然而通过自己技术的提升,归结出来了一下方案. 引入百 ...
- Python的__init__.py用法
python中包的引入,对于大型项目中都会使用到这个功能,把实现不同功能的python文件放在一起,组成不同lib库,然后在其他地方调用. 包,python源文件+__init__.py 模块,pyt ...
- HTTP协议类
本文从以下几方面介绍HTTP协议 HTTP协议的主要特点 HTTP报文的组成部分 HTTP方法 HTTP状态码 POST和GET的区别 什么是持久连接 什么是管线化 主要特点: http协议的特点: ...
- 父类清除浮动的原因、(清除浮动代码,置于CSS中方便调用)
浮动因素在静态网页制作中经常被应用到,比如要让块级元素不独占一行,常常应用设置float的方式来实现.但是应用的时候会发现,设置了子类浮动后,未给父类清除浮动,这样就会造成一下问题: 1.浮动的元素会 ...
- mysql之ALTER COLUMN、CHANGE COLUMN、MODIFY COLUMN的区别
ALTER COLUMN:设置或删除列的默认值(操作速度非常快) 例子: alter table film alter column rental_duration set default 5; al ...