11179|32

6892

帖子

0

TA的资源

五彩晶圆(高级)

楼主
 

【FPGA读书会】王金明_Verilog程序设计教程实例研读,欢迎跟帖讨论 [复制链接]

  学习FPGA的一个最简单的方法,就是总结和研究别人设计的成果,并从中学到自己的需要的东西。从今日开始,我呼吁本坛(FPGA)XDJM静下心来读读王金明_Verilog程序设计教程实例这本书,看看书中有那些金子能供我们捡到!

 

              召集人:EEWORLD论坛FPGA分舵舵主:EELEADER

                                2011.7.8

此帖出自FPGA/CPLD论坛

最新回复

楼主说的有道理~~  详情 回复 发表于 2012-7-4 22:42
点赞 关注
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 

回复
举报

6892

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

【例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

 

从上面的这个例子我可以学到下面几点:

   1.verilog语法中,可以长度不同的变量相加,短变量高位自动补0;

   2.verilog语法中, 信号分配可以采用{cout,sum}=ina+inb+cin;

  3. verilog语法中, 信号拼接用{};

 

此帖出自FPGA/CPLD论坛

赞赏

1

查看全部赞赏

个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 
 

回复

6892

帖子

0

TA的资源

五彩晶圆(高级)

板凳
 

根据上面的全加器可以造个山寨的代码如下:

  module adder8(cout,sum,ina,inb,cin);
output[7:0] sum;
output cout;
input[7:0] ina,inb;
input cin;
assign {cout,sum}=ina+inb+cin;
endmodule

 

8位字长的全加器!!!!!!!!!!!!!!!!!!!!!

此帖出自FPGA/CPLD论坛
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 
 
 

回复

6892

帖子

0

TA的资源

五彩晶圆(高级)

4
 

同步复位4位计数器代码

【例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

 

上面的计数器代码有特点如下:

   同步复位,计数器自动溢出。

 上面代码体现了,输出管脚定义REG类型,可以用在ALWAYS模块。

 

4位全加器代码体现了,输出管脚默认是WIRE类型,只能用ASSIGN 赋值。

把上面的代码改成异步复位如下:

module count4(out,reset,clk);
output[3:0] out;
input reset,clk;
reg[3:0] out;
always @(posedge clk or posedge reset)
begin
if (reset) out<=0; //异步复位
else out<=out+1; //计数
end
endmodule

 

此帖出自FPGA/CPLD论坛
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 
 
 

回复

2804

帖子

0

TA的资源

五彩晶圆(初级)

5
 
支持楼主!~
此帖出自FPGA/CPLD论坛
个人签名QQ:1625345502
 
 
 

回复

6892

帖子

0

TA的资源

五彩晶圆(高级)

6
 
要用实际行动(分析两个实例来)支持!
此帖出自FPGA/CPLD论坛
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 
 
 

回复

2804

帖子

0

TA的资源

五彩晶圆(初级)

7
 

回复 6楼 eeleader 的帖子

稍后的把,穿点ACTEL周立功的资料
学习还是很好的。
此帖出自FPGA/CPLD论坛
个人签名QQ:1625345502
 
 
 

回复

1万

帖子

16

TA的资源

版主

8
 

学习了

此帖出自FPGA/CPLD论坛
个人签名http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
 
 
 

回复

6892

帖子

0

TA的资源

五彩晶圆(高级)

9
 

【例3.3】4 位全加器的仿真程序
`timescale 1ns/1ns
`include "adder4.v"  // 调用的程序
module adder_tp; //测试模块的名字
reg[3:0] a,b; //测试输入信号定义为reg 型
reg cin;
wire[3:0] sum; //测试输出信号定义为wire 型
wire cout;
integer i,j;
adder4 adder(sum,cout,a,b,cin); //调用测试对象
always #5 cin=~cin; //设定cin 的取值
initial
begin
a=0;b=0;cin=0;
for(i=1;i<16;i=i+1)
#10 a=i; //设定a 的取值
end
initial
begin
for(j=1;j<16;j=j+1)
#10 b=j; //设定b 的取值
end
initial //定义结果显示格式
begin
$monitor($time,,,"%d + %d + %b={%b,%d}",a,b,cin,cout,sum);   // 这个对应关系还要+,+ ,{}
#160 $finish;
end
endmodule

 

测试程序,支持FOR语句,还有其他显示语句!

此帖出自FPGA/CPLD论坛
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 
 
 

回复

2万

帖子

74

TA的资源

管理员

10
 

回复 9楼 eeleader 的帖子

希望能得到大家的支持 每人每天总结一点点 就是不小的财富呢
此帖出自FPGA/CPLD论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 
 

回复

5015

帖子

12

TA的资源

裸片初长成(初级)

11
 

回复 9楼 eeleader 的帖子

学习testbench,以前老是拿片上逻辑分析仪做,把后仿真都省了,回头才发现。写一个模块的testbench要比这个模块本身要复杂很多
此帖出自FPGA/CPLD论坛
 
 
 

回复

6892

帖子

0

TA的资源

五彩晶圆(高级)

12
 

【例3.4】4 位计数器的仿真程序
`timescale 1ns/1ns
`include "count4.v"
module coun4_tp;
reg clk,reset; //测试输入信号定义为reg 型
wire[3:0] out; //测试输出信号定义为wire 型
parameter DELY=100;
count4 mycount(out,reset,clk); //调用测试对象
always #(DELY/2) clk = ~clk; //产生时钟波形
initial
begin //激励信号定义
clk =0; reset=0;
#DELY reset=1;
#DELY reset=0;
#(DELY*20) $finish;
end
//定义结果显示格式
initial $monitor($time,,,"clk=%d reset=%d out=%d", clk, reset,out);

endmodule

标准的测试程序例子!

整个程序标准模板如下:

时钟刻度引用-----

仿真程序调用-----

仿真程序命名-----

输入信号定义位REG----

输出信号定义为WIRE---

延时参数定义----

调用被仿真的程序---

时钟信号产生---

信号初始化----

信号结束标志---

信号显示结果标志---

 

此帖出自FPGA/CPLD论坛
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 
 
 

回复

7228

帖子

192

TA的资源

五彩晶圆(高级)

13
 
楼主很厉害 可惜俺不会fpga
此帖出自FPGA/CPLD论坛
 
 
 

回复

6892

帖子

0

TA的资源

五彩晶圆(高级)

14
 

多看,多读,多用,就会了!

此帖出自FPGA/CPLD论坛
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 
 
 

回复

928

帖子

0

TA的资源

五彩晶圆(高级)

15
 
王金明_Verilog程序设计教程
很好,例子多。
手头有第四版的书。
此帖出自FPGA/CPLD论坛
个人签名动手创造个性自我

https://home.eeworld.com.cn/?95709
 
 
 

回复

125

帖子

3708

TA的资源

一粒金砂(高级)

16
 
支持楼主!
此帖出自FPGA/CPLD论坛
 
 
 

回复

6892

帖子

0

TA的资源

五彩晶圆(高级)

17
 

【例3.5】“与-或-非”门电路
module AOI(A,B,C,D,F); //模块名为AOI(端口列表A,B,C,D,F)
input A,B,C,D; //模块的输入端口为A,B,C,D
output F; //模块的输出端口为F

wire A,B,C,D,F; //定义信号的数据类型
assign F= ~((A&B)|(C&D)); //逻辑功能描述
endmodule

 

基础支持共分享!

本例中学习了“与-或-非” 的符号表示方法!

此帖出自FPGA/CPLD论坛
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 
 
 

回复

21

帖子

0

TA的资源

一粒金砂(中级)

18
 
我不是捣乱的,我就觉得他书里有些例子值得商榷:
我记得书里面有个用流水线做的加法器,他的例子有问题,怎么都没有最终的进位。
后来我自己改了下,才对了。
不过从这个例子里让我更深一步理解了,写VERILOG要用电路的思想而不是编程的思想去写。
此帖出自FPGA/CPLD论坛
 
 
 

回复

21

帖子

0

TA的资源

一粒金砂(中级)

19
 
书没在身边,等我晚上回去了就上传程序
此帖出自FPGA/CPLD论坛
 
 
 

回复

6892

帖子

0

TA的资源

五彩晶圆(高级)

20
 

读书的目的,研究的目的,融会贯通, 楼主说明已经进入这个状态了. 能够发现他的问题,说明我们去思考了

此帖出自FPGA/CPLD论坛
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表