没有合适的资源?快使用搜索试试~ 我知道了~
verilog实例代码.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 44 浏览量
2023-02-22
19:41:17
上传
评论
收藏 1.08MB PDF 举报
温馨提示
.verilog实例代码.pdf
资源推荐
资源详情
资源评论
verilog 实例代码
//与门
module zxhand2(c,a,b);
input a,b;
output c;
assign c= a & b;
endmodule
//或门
module zxhor2(c,a,b);
input a,b;
output c;
assign c= a | b;
endmodule
//非门
module zxhnot2(c,b);
input b;
output c;
assign c=~ b;
endmodule
////异或门
module zxhxro2(c,a,b);
input b;
output c;
assign c=a ^ b;
endmodule
两选一电路
module data_scan(d0,d1,sel,q);
output q;
input d0,d1,sel;
wire t1,t2,t3;
n1 zxhand2(t1,d0,sel);
n2 zxhnot2 (t4,sel);
n3 zxhand2(t2,d1,t4);
n4 zxhor2(t3,t1,t2);
assign q=t1;
verilog 实例代码
endmodule
verilog HDL 实例(一)
练习一.简单的组合逻辑设计
目的: 掌握基本组合逻辑电路的实现方法。
这是一个可综合的数据比较器,很容易看出它的功能是比较数据 a 与数据 b,
如果两个数据相同,则给出结果 1,否则给出结果 0。在 Verilog HDL 中,描述
组合逻辑时常使用 assign 结构。注意 equal=(a==b)?1:0,这是一种在组合逻辑实
现分支判断时常使用的格式。
rCRYt。
模块源代码:
//--------------- compare.v -----------------
module compare(equal,a,b);
input a,b;
output equal;
assign equal=(a==b)?1:0; //a 等于 b 时,equal 输出为 1;a 不等于 b 时,
//equal 输出为 0。
endmodule
测试模块用于检测模块设计得正确与否,它给出模块的输入信号,观察模块
的内部信号和输出信号,如果发现结果与预期的有所偏差,则要对设计模块进
行修改。
VstEm。
测试模块源代码:
`timescale 1ns/1ns //定义时间单位。
module comparetest;
reg a,b;
wire equal;
initial //initial 常用于仿真时信号的给出。
begin a=0;
b=0;
#100 a=0;
b=1;
#100 a=1;
b=1;
#100 a=1;
b=0;
#100 $stop; //系统任务,暂停仿真以便观察仿真波形。
end
compare compare1(.equal(equal),.a(a),.b(b)); //调用模块。
BRBQI。
Endmodule
verilog 实例代码
【例3.1】4 位全加器
module adder4(cout,sum,ina,inb,cin);
output[3:0] sum;
output cout;
input[3:0] ina,inb;
input cin;
assign {cout,sum}=ina+inb+cin;
endmodule
【例3.2】4 位计数器
module count4(out,reset,clk);
output[3:0] out;
input reset,clk;
reg[3:0] out;
always @(posedge clk)
begin
if (reset) out<=0; //同步复位
else out<=out+1; //计数
end
endmodule
09.04.07
【例5.11】模为60 的BCD 码加法计数器
module count60(qout,cout,data,load,cin,reset,clk);
output[7:0] qout;
output cout;
input[7:0] data;
input load,cin,clk,reset;
reg[7:0] qout;
always @(posedge clk) //clk 上升沿时刻计数
begin
if (reset) qout<=0; //同步复位
else if(load) qout<=data; //同步置数
else if(cin)
begin
if(qout[3:0]==9) //低位是否为9,是则
begin
qout[3:0]<=0; //回0,并判断高位是否为5
if (qout[7:4]==5) qout[7:4]<=0;
verilog 实例代码
else
qout[7:4]<=qout[7:4]+1; //高位不为5,则加1
end
else //低位不为9,则加1
qout[3:0]<=qout[3:0]+1;
end
end
assign cout=((qout==8'h59)&cin)?1:0; //产生进位输出信号
endmodule
【例9.10】奇偶校验位产生器
module parity(even_bit,odd_bit,input_bus);
output even_bit,odd_bit;
input[7:0] input_bus;
assign odd_bit = ^ input_bus; //产生奇校验位
assign even_bit = ~odd_bit; //产生偶校验位
endmodule
Verilog HDL 实例(二)
练习二. 简单时序逻辑电路的设计
目的:掌握基本时序逻辑电路的实现。
在 Verilog HDL 中,相对于组合逻辑电路,时序逻辑电路也有规定的表述方
式。在可综合的 Verilog HDL 模型,我们通常使用 always 块和 @(posedge clk)(上
升沿)或 @(negedge clk)(下降沿)的结构来表述时序逻辑。下面是一个 1/2 分频
器的可综合模型。
IThHj。
// 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
verilog 实例代码
在 always 块中,被赋值的信号都必须定义为 reg 型,这是由时序逻辑电路的特
点所决定的。对于 reg 型数据,如果未对它进行赋值,仿真工具会认为它是不
定态。为了能正确地观察到仿真结果,在可综合风格的模块中我们通常定义一
个复位信号 reset,当 reset 为低电平时,对电路中的寄存器进行复位。
4joJb。
测试模块的源代码:
//------------------- clk_Top.v -----------------------------
SIJKT。
`timescale 1ns/100ps
`define clk_cycle 50
module clk_Top.v;
reg clk,reset;
wire clk_out;
always #`clk_cycle clk = ~clk;
initial
begin
clk = 0;
reset = 1;
#100 reset = 0;
#100 reset = 1;
#10000 $stop;
end
half_clk half_clk(.reset(reset),.clk_in(clk),.clk_out(clk_out));
D24Yg。
endmodule
Verilog HDL 实例(三)
练习三. 利用条件语句实现较复杂的时序逻辑电路
目的:掌握条件语句在 Verilog HDL 中的使用。
RWxVR。
与常用的高级程序语言一样,为了描述较为复杂的时序关系,Verilog HDL 提供
了条件语句供分支判断时使用。在可综合风格的 Verilog HDL 模型中常用的条
件语句有 if…else 和 case…endcase 两种结构,用法和 C 程序语言中类似。两者
相较,if…else 用于不很复杂的分支关系,实际编写可综合风格的模块、特别是
用状态机构成的模块时,更常用的是 case…endcase 风格的代码。这一节我们给
的是有关 if…else 的范例,有关 case…endcase 结构的代码已后会经常用到。
3Shze。
下面给出的范例也是一个可综合风格的分频器,是将 10M 的时钟分频为 500K
的时钟。基本原理与 1/2 分频器是一样的,但是需要定义一个计数器,以便准
确获得 1/20 分频
eSLk8。
模块源代码:
剩余30页未读,继续阅读
资源评论
春哥111
- 粉丝: 1w+
- 资源: 6万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- java毕设项目之基于ssm框架的博客系统的开发+vue(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之基于ssm框架的校园闲置物品交易平台+jsp(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之基于vue.js的购物商场的设计与实现+vue(完整前后端+说明文档+mysql+lw).zip
- 生菜生长记录数据集(3K+ 记录,7特征) CSV
- java毕设项目之基于协同过滤技术的网上书城的开发与研究+jsp(完整前后端+说明文档+mysql+lw).zip
- 微信小程序商城,微信小程序demo
- java毕设项目之教务信息平台的设计与实现+jsp(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之江苏融汇房地产营销策划有限公司的宣传网站+vue(完整前后端+说明文档+mysql+lw).zip
- 【计算机网络基础】章节测试1+概述.html
- 大学录取结果数据集,大学录取结果分析数据,大学录取因素分析
- java毕设项目之课程在线教学平台设计与实现+jsp(完整前后端+说明文档+mysql+lw).zip
- Android开发工程师张某某的详细个人简历
- MySQL数据库从入门到精通的学习资源汇总
- 常用成语汇编-1768常用词条收录-1.7万成语汇总
- CA51F3系列MCU参考电路,LCD,LED参考电路设计 REV 2.0
- java毕设项目之新媒体视域下的中国古诗词展演+vue(完整前后端+说明文档+mysql+lw).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功