- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
下面是一个简单的Verliog HDL的例子。
module reg12(d, clk,,q);
define size 11
input [size:0] d;
input clk;
output [size:0] q;
reg [size:0] q;
always@(posedge clk)
q=d;
endmodule
Verilog HDL的基本设计单元是“模块(block)”。一个模块由两部分组成:一部分描述接口,一部分描述逻辑功能,即定义输入是如何影响输出的。
每个程序包括四个主要部分:端口定义、I/O说明、信号类型和功能描述。
有3中方法可以在模块中描述逻辑。
用assign语句 assign A=BC;
assign语句一般适合于对组合逻辑进行赋值。称为连续赋值方式。
2、用原件例化 or myor3(a,b,c,d);
这个语句定义了一个3输入的“或”门
3、用always块语句 always@(posedge clk) q=d
上句表示每当时钟上升沿到来时执行一遍块内的语句。
4、assign # 2 B = A;
表示 B信号在2个时间单位后得到A信号的值。
常用的赋值语句:连续赋值语句和过程赋值语句
连续赋值语句:assign,用于对wire型变量赋值。
过程赋值语句:用于对寄存器型变量赋值,有以下2种赋值方式。
非阻塞赋值方式,=, 该方式在块结束时才完成赋值操作。
阻塞赋值方式,=, 在该语句结束是就完成赋值操作。
综合是将电路的高级语言转化为低级的,可与FPGA\CPLD或构成ASIC的门阵列基本结构相映射的网表文件或程序。综合包括编译,转换,调度,分配,控制器综合和结果的生成等几个步骤。
RTL代码在下载到板子上这个过程之前,要做一个综合、布局、布线,按照FPGA的要求,综合成电路,然后讲bit流文件下到FPGA开发板上,一句话,下板子之前,肯定得综合,只是这部分你做的很快(可能电路比较小,综合很快)。你要下载,肯定得生成可以下载到板子里的一种文件,比如bit流等,肯定就包含综合这个步骤,只是很快,你看看你软件界面上,有没有synthesize这个选项(肯定有),还有布局步线(map等)。
基本的数据类型和常量、变量、信号
1、常量:程序运行过程中值不变的量。 完整的数字表达式为:位宽’进制数字
位宽是对应二进制数字的宽度
变量 分为两种:网络型和寄存器型
nets型变量:输出始终根据输入的变化而更新其值的变量。一般指的是硬件电路中的各种物理连接。
类型 功能说明 Wire tri 连线类型 Wor trior 具有线或特性的连线 Wand triand 具有线或特性的连线 Tri1 tri0 分别为上拉电阻和上拉电阻 Supply1、supply0 分别为电源“1”和地“0” register型变量:对应的是具有状态保持作用的电路元件,如触发器,寄存器等。它与nets型变量的根本区别在于:它需要明确赋值,并且在被重新赋值前一直保持原值。设计中必须将寄存器变量放在过程块语句(如initial、always)中,通过过程赋值语句赋值。
数组:若干个宽度相同的向量,reg型数组变量即为memory型变量,可定义存储器型数据。如:reg[7:0] a[255:0]; 定义了一个256个字节,每个字节宽度为8位的存储器。
数据类型 整数(INTEGER)、实数(REAL)、位(BIT)、位矢量(BIT_VECTOR)、标准逻辑(STD_LOGIC_VECTOR)、布尔量(BOOLEAN)、字符(CHARACTER)、字符串(STRING)及时间(TIME)类型。
典型电路的设计:
简单的组合逻辑设计
例:可综合的数据比较器,功能是比较数据a和数据b,相同给出结果1,否则给0。
//--------compare.v------
module compare(equal,a,b);
input a,b;
output equal;
assign equal=(a==b)?1:0;
endmodule
2、简单时序逻辑电路的设计
例:1/2分频器的可综合模型.通常使用always块和@(posedge clk)或(negedge clk)的结构来表述时序逻辑。
//half_clk.v:
module half_clk(reset,clk_in,clk_out);
input clk_in,reset;
output clk_out;
reg clk_out;
always@(posedge clk_in)
begin
if(!reset)clk_out=0;
else clk_out=-clk_out;
end
endmodule
在always块
您可能关注的文档
最近下载
- 幕墙防水图集-ver01来源..doc
- GB 10136-2015 食品安全国家标准 动物性水产制品.pdf
- 道路硬底化建设投标方案.doc
- 输变电工程标准工艺(变电工程电气分册)2022版.docx
- 深圳市智能机器人产业白皮书(2023年).pdf
- 典型零件多轴加工 课件 项目一 多轴机床的操作.pptx
- 人教版(2024)英语七年级上册 STARTER UNITS 1-3 学情评估.doc VIP
- 人教部编版七年级语文上册生字词复习练习及答案(给加点字注音、根据拼音写汉字、词语解释).pdf
- GB-T 196-2003普通螺纹 基本尺寸_(高清).pdf
- 数据库系统原理实践报告.docx VIP
文档评论(0)