请教:verilog语句parameter的用法。

作者&投稿:佼娥 (若有异议请与网页底部的电邮联系)
求助关于Verilog-A中的parameter用法~

(-inf,0]的意思是在之后的设计中via_name的值只能在负无穷到0之间,这样就相当于限定了via_name的取值范围。parameter一旦定下来在仿真过程中是不能改变的,但是可以在编译的时候改变。
Parameters represent constants, hence it is illegal to modify their value at runtime. However, parameters can be modified at compilation time to have values that are different from those specified in the declaration assignment. This allows customization of module instances. A parameter can be modified with the defparam statement, or in the module instance statement.

parameter用来定义常数。
可以用来定义状态
比如
parameter idle=4'b0000;
parameter s1=4'b0001;
…………………………
…………………………
然后case(state)
idle:………………
s1:………………
这样比较方便不用每次都把具体的数字写出来,相当于一个代号。

initall=0,rec_data=1,data_pro=2,cmd_pro=3,send_ep1=4;

分别代表状态,如:state == 0的话,case语句就会进入initall状态,state == 1的话, case语句进入rec_data;依次类推,1、2、3、4这些标号用parameter表示,是通常的写法,代表常数参数,这样也便于修改,状态也比较直观,可以随便修改的。
每个语句如:
data_pro:
此时代表当前状态state = data_pro即2,这个data_pro可以都用2代替的。
运行下面的语句,if(mem_save[0]==1) state <= cmd_pro,也就是状态跳转到 cmd_pro即3。
1、2、3这些定义都可以在parameter那里修改的,也可以不定义的,data_pro、cmd_pro等状态那么就全是1、2、3,又不直观,而且不好修改。使用如果parameter定义,代码很多的话,修改起来比较方便,这个文件只需要修改一次,所有状态都发生变化。
有帮助请采纳,谢谢!

你写出来的程序别人是要读懂的,你把你所有的状态划分都用数字表示,我看到了我知道什么?
通过定义读你程序的人一下就知道你这个状态干什么,那个状态干什么。
至于说哪个是1,哪个是2都无所谓,如果状态转移基本都是顺序切换的,你也可以按照格雷编码的方式,保证每次状态切换只有一个比特位变化,比如0,1,3,2,6,4,5,7等等。

用来定义状态,表示状态切换


Verilog HDL程序设计教程图书信息
想深入了解Verilog HDL程序设计吗?这本权威的教程将是你不可或缺的伙伴。它是由人民邮电出版社出版的,首次发行于2004年1月1日,是一本专门针对Verilog HDL编程的详尽指南。书籍以308页的丰富内容,全面覆盖了Verilog HDL的基础知识和实践技巧。它使用的是简体中文,方便国内读者理解和学习。ISBN号码为...

Verilog数字系统设计教程的内容简介
全书共分4部分。第一部分共8章,即Verilog数字设计基础篇,可作为本科生的入门教材。第二部分共10章,即设计和验证篇,可作为本科高年级学生或研究生学习数字系统设计的参考书。第三部分为实践篇,共提供12个上机练习和实验范例。第四部分是语法篇,即Verilog 硬件描述语言参考手册;IEEE Verilog13642001...

准备学Verilog,市面上有好几本这样的教材,请问下大家这些教材哪本比较好...
《Verilog数字系统设计教程(第二版)》 夏宇闻 《深入浅出玩转FPGA(内附光盘一张)》 吴厚航 这本书有视频教程 《Altera FPGA\/CPLD设计(基础篇)(第2版)》《Altera FPGA\/CPLD设计(高级篇)(第2版)》选择ALTERA的器件可以看一下这两本 《设计与验证Verilog HDL》 吴继华,王诚 这书不错,看...

Verilog数字VLSI设计教程图书信息
这部深入浅出的Verilog数字VLSI设计教程是由威廉斯等多位译者共同翻译的作品。它隶属于电子工业出版社的"国外电子与通信教材系列",旨在为读者提供详尽的指导。该书于2010年7月1日首次发行,简体中文版共计318页,非常适合专业学习者研读。正文语言简洁明了,方便读者理解和掌握。书籍采用16开本设计,尺寸为...

verilog中移位操作符号
verilog中移位操作符号有2种,分别是“<<”左移位运算符和“>>”右移位运算符。格式如下:a<<n,a>>n。其中,a代表要移位的操作数,n代表要移几位。两种运算方式都用0来填补移出的空位。移位操作符对左边的操作数进行向左或向右的位移位操作,第二个操作数,移位位数是无符号数,遵循的操作规律...

Verilog数字系统设计教程的作品目录
第一部分 Verilog数字设计基础第1章 Verilog的基本知识1.1 硬件描述语言HDL1.2 Verilog HDL的历史1.2.1 什么是Verilog HDL1.2.2 Verilog HDL的产生及发展1.3 Verilog HDL和 VHDL的比较1.4 Verilog的应用情况和适用的设计1.5 采用Verilog HDL设计复杂数字电路的优点1.5.1 传统设计方法——电路...

基于FPGA与Verilog的计算机组成原理实践图书前言
在计算机组成原理的实践教学中,HDL(硬件描述语言)如Verilog被广泛应用于设计CPU为核心的计算机系统。学生在仿真开发环境中亲自进行核心部件的设计和验证,这种方式不仅激发了学生的学习热情,提高了学习效率,而且使理论知识与实际生产环境紧密结合,帮助学生更好地为未来职业生涯做准备。本书专为本科计算机...

跪求verilog hdl教程推荐几本书,本人初学。
个人觉得需要两本书。刚入门的时候如果看夏宇闻的《Verilog数字系统设计教程》的话,你会陷进去的,感觉东西特别多,也特别杂,估计就没兴趣了,而且也无法很好的抓住verilog的一些主干和层次。建议买《硬件描述语言Verilog》和夏宇闻的《Verilog数字系统设计教程》第二版这两本书,前者能给你构建一个很好的...

菜鸟请教Verilog编程问题
第一、这段代码有点点问题(应该是count<=24'd0,因为count是24bit的),当然,不影响结果 第二、先去看看verilog的基本语法,最起码你要知道19’d0(十进制表示0,但是位宽为19bit),24‘d1(十进制表示1,二进制表示00...0001(1的前面有23个0),位宽为24bit)的意思 第三、24’d1和24‘b1...

请教verilog的语句解析。assign a= (b=1)?(c && d) ? 1'b1:1'b0:1...
当b=0的时候a的值为0,当b=1时,a的值取决于c,d的值,当c=1,d=1时a的值等于1,当c=1,d=0或者c=0,d=1或者c=0,d=0时a的值为0。首先会判断b的值是否等于1,等于0,则直接对a进行赋值为0,如果b的值为1,那么会执行(c && d) ? 1'b1:1'b0,然后根据c&&d的结果判断...

苏家屯区13018503393: verilog语言中define,parameter和localparam的区别 -
揣俗胆木: define,是宏定义,全局有效.则在整个工程都是有效 parameter,参数,可以由调用者修改参数值. localparam,本地参数,调用者不可修改.

苏家屯区13018503393: 哪位大神给解释一下这句话的Verilog的语法 -
揣俗胆木: defparam是进行参数重载,也就是在例化之前,改变原模块内的参数值. 点号“.”是父子承接关系,Gen_ClkLed是模块名,divdWIDTH是承接的参数名称.

苏家屯区13018503393: 一个verilog的简单语句怎么写? -
揣俗胆木: module test(clk,cs); input clk; output reg cs; initial//初始化为0 cs <= 0; always@(posedge clk) cs <= ~cs; endmodule

苏家屯区13018503393: 请教verilog的语句解析.assign a= (b=1)?(c && d) ? 1'b1:1'b0:1'b0; -
揣俗胆木: 写的代码风格不好,致使别人很难理解,如果加上括号就好理解了. assign a= (b=1)? ((c && d) ? 1'b1:1'b0) :1'b0; 我在后面加上括号 先判断b的值,不过我认为verilog中的等于应该是==而不是=吧,也可以直接写(b), 1.如果b等于0,则a的值就是0,不管你的cd是多少. 2.如果b=1,则进入我加的括号里面的那个问号判断,这时候再判断c&&d的值,如果是1,a=1,如果是0,a=0 所以我们可以给出真值表 tab b 0 1 1 1 1 c x 1 0 0 1 d x 1 0 1 0 a 0 1 0 0 0

苏家屯区13018503393: 什么是verilog语言? -
揣俗胆木: Verilog HDL是目前应用最为广泛的硬件描述语言.Verilog HDL可以用来进行各种层次的逻辑设计,也可以进行数字系统的逻辑综合,仿真验证和时序分析等. Verilog HDL适合算法级,寄存器级,逻辑级,门级和版图级等各个层次的设计和描述...

苏家屯区13018503393: verilog中有谁用过用parameter定义的常数做赋值语句的位宽限制 -
揣俗胆木: parameter 作用于声明的那个文件;`define 从编译器读到这条指令开始到编译结束都有效,或者遇到`undef命令使之失效.状态机的定义可以用parameter 定义,但是不推荐使用`define 宏定义的方式,因为'define 宏定义在编译时自动替换整个设...

苏家屯区13018503393: 求verilog语言分别编写一个8位的ram和rom存储器 -
揣俗胆木: ROM = read only memory RAM = Random Access Memory 这两个都是做存储用的. FPGA上面应该都有分布式RAM和块RAM,直接声明就可以用了. 楼主是意思是写一个接口?还是就用verilog去描述一个RAM和ROM?我明白你的意思了.你要写一个基于FPGA的存储器,对于RAM,在开发板上应该是有的,这个是现成的东西,你所要做的是,设计一定的接口电路,使其能和外部进行数据的接受和发送.如果非要说,用verilog描述ram,这个东西就是一堆寄存器组.所以你要根据ram和rom的时序要求、带宽要求来写一个interface,使得能够和外部交互.谢谢

苏家屯区13018503393: verilog语法中.是怎么用的 -
揣俗胆木: 在Verilog中有两种类型的赋值语句:阻塞赋值语句(“=”)和非阻塞赋值语句(“<=”) 阻塞:在本语句中“右式计算”和“左式更新”完全完成之后,才开始执行下一条语句;非阻塞:当前语句的执行不会阻塞下一语句的执行.-

苏家屯区13018503393: 请教,Verilog hdl语言如何使数组占用ram,而不占用逻辑资源 -
揣俗胆木: 写在头文件里,用的时候include进去; 定义一个memory数组,然后把文件用readmemh读到这个数组里面,这样应该就可以 ;

苏家屯区13018503393: 常用的verilog 条件语句,循环语句有哪些 -
揣俗胆木: 条件if else , case 循环 while ,for 等!希望能帮助到你!

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网