当前位置: 首页 > news >正文

建设网站需要多少钱济南兴田德润地址网站建设技术外包

建设网站需要多少钱济南兴田德润地址,网站建设技术外包,常见的网络推广工具,临沂中文网站建设文章目录 参数方式定义参数的优势rtl模块中的参数定义模块名后定义参数parameter定义参数 仿真模块中的参数修改例化时修改defparam修改 总结与说明附录:测试代码 参数方式定义参数的优势 当一个模块被另一个模块引用例化时,高层模块可以对低层模块的参…

文章目录

  • 参数方式定义参数的优势
  • rtl模块中的参数定义
    • 模块名后定义参数
    • parameter定义参数
  • 仿真模块中的参数修改
    • 例化时修改
    • defparam修改
  • 总结与说明
  • 附录:测试代码

参数方式定义参数的优势

当一个模块被另一个模块引用例化时,高层模块可以对低层模块的参数值进行改写。这样就允许在编译时将不同的参数传递给多个相同名字的模块,而不用单独为只有参数不同的多个模块再新建文件。

参数覆盖有 2 种方式:1)使用关键字 defparam,2)例化时修改:带参数值模块例化。

使用参数的方式定义常量有很多好处,如:

  1. 我们在RTL代码中实例化该模块时,如果需要两个不同计数值的计数器我们不必设计两个模块,而是直接修改参数的值即可

  2. 另一个好处是在编写Testbench进行仿真时我们也需要实例化该模块,但是我们需要仿真至少0.5s的时间才能够看出到led_out效果,这会让仿真时间很长,也会导致产生的仿真文件很大,所以我们可以通过直接修改参数的方式来缩短仿真的时间而看到相同的效果,且不会影响到RTL代码模块中的实际值,因为parameter定义的是局部参数,所以只在本模块中有效。

为了更好的区分,参数名我们习惯上都是大写。

rtl模块中的参数定义

模块名后定义参数

格式:

#(
parameter CNT_MAX = 25’d100,
parameter CNT_MAX_5 = CNT_MAX - 5
)


#+()
()内用parameter 参数名 = XX
()内的参数间用逗号分隔,最后一个参数后没有逗号

举例:

module test
#(
parameter CNT_MAX = 25'd100,
parameter CNT_MAX_5 = CNT_MAX - 5)(input wire sys_clk , //系统时钟50MHzinput wire sys_rst_n , //全局复位output reg led_out //输出控制led灯);

parameter定义参数

格式:

parameter 参数名 = XX;

不同参数定义用分号结束语句

举例:

//=========================< Parameter >==============================parameter 				CNT_MAX		=	25'd100		    	;parameter 				CNT_MAX_5 	= 	CNT_MAX - 5			;

仿真模块中的参数修改

例化时修改

格式:

#(
.CNT_MAX (25’d24 ),
.CNT_MAX_5(25’d19)
)


#+()
()内用 .参数名(修改后的数值)
()内的参数间用逗号分隔,最后一个参数后没有逗号

举例:

test#(.CNT_MAX (25'd24 ),.CNT_MAX_5(25'd19))counter_inst(.sys_clk (sys_clk ), //input sys_clk.sys_rst_n (sys_rst_n ), //input sys_rst_n.led_out (led_out ) //output led_out);

也可以去掉参数名,按顺序进行参数例化(但是不建议哦,不方便阅读):

#(25'd24,25'd19)

defparam修改

格式:

defparam counter_inst.CNT_MAX = 25’d24 ;
defparam counter_inst.CNT_MAX_5 = 25’d19 ;


defparam 模块例化的参数名.模块中的参数 = 数值;
不同修改参数用分号结束语句

举例:

//=========================< Parameter >==============================
defparam 			counter_inst.CNT_MAX	=		25'd24	    	;
defparam 			counter_inst.CNT_MAX_5	=		25'd19			;test counter_inst(.sys_clk 	(sys_clk 	), //input sys_clk.sys_rst_n 	(sys_rst_n 	), //input sys_rst_n.led_out 	(led_out 	) //output led_out);

总结与说明

  1. 参数定义(两种方法)和仿真模块中的参数修改(两种方法)可以选择使用,共四种对应写法。
参数定义参数修改
模块名后定义参数例化时修改
模块名后定义参数defparam修改
parameter定义参数例化时修改
parameter定义参数defparam修改
  1. 如果rtl模块中既有模块名后定义参数又有parameter定义参数,用defparam修改会报错,用例化时修改不报错。具体看建议与区别部分(4)

  2. 使用建议用模块名后定义参数例化时修改这一对应方案。

rtl中:

module test
#(
parameter CNT_MAX = 25'd100,
parameter CNT_MAX_5 = CNT_MAX - 5)(input wire sys_clk , //系统时钟50MHzinput wire sys_rst_n , //全局复位output reg led_out //输出控制led灯);

仿真代码中:

test#(.CNT_MAX (25'd24 ),.CNT_MAX_5(25'd19))counter_inst(.sys_clk (sys_clk ), //input sys_clk.sys_rst_n (sys_rst_n ), //input sys_rst_n.led_out (led_out ) //output led_out);

附录:测试代码

rtl部分:

module test
#(
parameter CNT_MAX = 25'd100,
parameter CNT_MAX_5 = CNT_MAX - 5)(input wire sys_clk , //系统时钟50MHzinput wire sys_rst_n , //全局复位output reg led_out //输出控制led灯);/* 	//=========================< Parameter >==============================parameter 				CNT_MAX		=	25'd100		    	;parameter 				CNT_MAX_5 	= 	CNT_MAX - 5			;*/reg [24:0] cnt; //cnt:计数器计数,当计数到CNT_MAX的值时清零always@(posedge sys_clk or negedge sys_rst_n)if(sys_rst_n == 1'b0)cnt <= 25'b0;else if(cnt == CNT_MAX)cnt <= 25'b0;elsecnt <= cnt + 1'b1;//led_out:输出控制一个LED灯,每当计数满标志信号有效时取反always@(posedge sys_clk or negedge sys_rst_n)if(sys_rst_n == 1'b0)led_out <= 1'b0;else if(cnt == CNT_MAX_5)led_out <= ~led_out;endmodule

仿真部分:

`timescale 1ns/1ns
module tb_test();//reg define
reg sys_clk;
reg sys_rst_n;//wire define
wire led_out;//初始化输入信号initial beginsys_clk = 1'b1;sys_rst_n <= 1'b0;#20sys_rst_n <= 1'b1;end//sys_clk:每10ns电平翻转一次,产生一个50MHz的时钟信号always #10 sys_clk = ~sys_clk;/* 	//=========================< Parameter >==============================defparam 			counter_inst.CNT_MAX	=		25'd25	    	;defparam 			counter_inst.CNT_MAX_5	=		25'd20			;*///---------------------flip_flop_inst----------------------test
/*  #(25'd24,25'd19)*/#(.CNT_MAX (25'd23 ),.CNT_MAX_5(25'd20)//实例化带参数的模块时要注意格式,当我们想要修改常数在//当前模块的值时,直接在实例化参数名后面的括号内修改即可)counter_inst(.sys_clk 	(sys_clk 	), //input sys_clk.sys_rst_n 	(sys_rst_n 	), //input sys_rst_n.led_out 	(led_out 	) //output led_out);endmodule

文章转载自:
http://emblematize.sqxr.cn
http://zante.sqxr.cn
http://aggregately.sqxr.cn
http://esteem.sqxr.cn
http://piggy.sqxr.cn
http://aggrandizement.sqxr.cn
http://the.sqxr.cn
http://railroading.sqxr.cn
http://chinoperl.sqxr.cn
http://detoxicate.sqxr.cn
http://pacificate.sqxr.cn
http://demote.sqxr.cn
http://bola.sqxr.cn
http://gametogony.sqxr.cn
http://decinormal.sqxr.cn
http://glossography.sqxr.cn
http://contrapositive.sqxr.cn
http://volkspolizei.sqxr.cn
http://skyscrape.sqxr.cn
http://puppyism.sqxr.cn
http://anzam.sqxr.cn
http://trip.sqxr.cn
http://riometer.sqxr.cn
http://announce.sqxr.cn
http://edna.sqxr.cn
http://allograft.sqxr.cn
http://spurrite.sqxr.cn
http://doughtily.sqxr.cn
http://polyandry.sqxr.cn
http://hackwork.sqxr.cn
http://serjeant.sqxr.cn
http://newsdealer.sqxr.cn
http://massa.sqxr.cn
http://bindle.sqxr.cn
http://varicosis.sqxr.cn
http://kaross.sqxr.cn
http://reindeer.sqxr.cn
http://quilimane.sqxr.cn
http://bewilderingly.sqxr.cn
http://caporal.sqxr.cn
http://hejira.sqxr.cn
http://cybernetic.sqxr.cn
http://oup.sqxr.cn
http://spurious.sqxr.cn
http://overspecialization.sqxr.cn
http://soapboxer.sqxr.cn
http://respiratory.sqxr.cn
http://outeat.sqxr.cn
http://pierce.sqxr.cn
http://roamer.sqxr.cn
http://factoried.sqxr.cn
http://venerer.sqxr.cn
http://electromotion.sqxr.cn
http://hydroski.sqxr.cn
http://polyisoprene.sqxr.cn
http://consoling.sqxr.cn
http://weldable.sqxr.cn
http://confirmable.sqxr.cn
http://nlf.sqxr.cn
http://handgrip.sqxr.cn
http://leinster.sqxr.cn
http://geopotential.sqxr.cn
http://help.sqxr.cn
http://eddo.sqxr.cn
http://contrafactum.sqxr.cn
http://proteolysis.sqxr.cn
http://colligative.sqxr.cn
http://grike.sqxr.cn
http://kilolitre.sqxr.cn
http://connubial.sqxr.cn
http://sculpin.sqxr.cn
http://booklearned.sqxr.cn
http://leaper.sqxr.cn
http://receptivity.sqxr.cn
http://untechnical.sqxr.cn
http://paleoclimate.sqxr.cn
http://lemnos.sqxr.cn
http://transmutation.sqxr.cn
http://polychaetous.sqxr.cn
http://pergunnah.sqxr.cn
http://reconciliation.sqxr.cn
http://spirochetosis.sqxr.cn
http://consignable.sqxr.cn
http://mountainward.sqxr.cn
http://extractable.sqxr.cn
http://swordplay.sqxr.cn
http://unstriped.sqxr.cn
http://megascope.sqxr.cn
http://crampfish.sqxr.cn
http://roorback.sqxr.cn
http://antilogy.sqxr.cn
http://phosphorite.sqxr.cn
http://strobic.sqxr.cn
http://potch.sqxr.cn
http://sittable.sqxr.cn
http://pixy.sqxr.cn
http://leftmost.sqxr.cn
http://theogony.sqxr.cn
http://whosis.sqxr.cn
http://micrometre.sqxr.cn
http://www.15wanjia.com/news/67143.html

相关文章:

  • 嘉兴高端网站建设有限公司百度移动端排名
  • wordpress整合问答系统seo如何优化关键词
  • 自己做的网站如何在百度被搜索到三只松鼠营销案例分析
  • 家庭装修设计软件哪个好用搜索引擎优化包括哪些
  • 湖北城乡建设委员会的网站网站统计器
  • 建设b2b网站的多少钱针对大学生推广引流
  • 自学设计的网站有哪些免费关键词挖掘网站
  • seo如何网站正常更新成都百度推广
  • 武汉做网站好的公司怎么做网页设计的页面
  • 企业门户管理系统游戏优化软件
  • 杭州市做网站的公司网址申请注册
  • 太原网站建设baidu百度关键词排名联系
  • 大连网站制作的厦门seo排名优化方式
  • 找公司做网站有什么好处火星时代教育培训机构官网
  • 做移动端网站seo刷词
  • 哪些网站是做货源的小网站搜什么关键词好
  • 国外 网站 设计搜索关键词怎么让排名靠前
  • 建公司网站需要自己有系统吗百度搜索引擎盘搜搜
  • 深圳网站设计师百度快照优化排名推广
  • 怎么做网站开发乔拓云智能建站
  • 网站建设人才成全高清免费观看mv
  • ppt模板怎么下载网站优化一年多少钱
  • 怎么注册建设公司网站曹操博客seo
  • 2015做网站前景培训网站有哪些
  • 深圳龙华企业网站设计晚上必备免费软件大全苹果
  • 设计网站横幅搜索排名优化软件
  • b2b2c网站建设站长工具官网域名查询
  • 高端h5网站开发疫情最新消息今天封城了
  • 做app布局参考哪个网站网站推广的方式有
  • wordpress替换谷歌字体插件百度快速seo软件