打印

GSM和大家一起学习Verilog HDL

[复制链接]
3639|38
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
GoldSunMonkey|  楼主 | 2012-3-8 23:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 GoldSunMonkey 于 2012-3-9 20:54 编辑

我自己对VHDL比较熟悉,对于Verilog只能做到基本看懂,想和大家一起学习Verilog 135的经典例子。
我会争取做一些讲解,和大家一起学习。有问题我们可以一起讨论~
所有例子讲解都归本人所有,供大家交流和学习,转载。
转载时请注明,为21IC论坛网友Goldsunmonkey所有,
用于商业用途时,请联系21IC论坛网友Goldsunmonkey.


第一讲:4 位全加器---------------2楼
第二讲:4 位计数器---------------15楼
评分
参与人数 1威望 +5 收起 理由
星星之火红 + 5

相关帖子

沙发
GoldSunMonkey|  楼主 | 2012-3-8 23:33 | 只看该作者
本帖最后由 GoldSunMonkey 于 2012-3-9 20:44 编辑

第一讲:
4 位全加器全加器需要有输入输出,需要有下级向上进位的输入,
需要有向上一位进位的输出。大家看一下,这个模块已经包含全部的输入输出信息。
大家都知道,N位加法器得出来的出来的和最多是N+1位
因此可以清晰从下面代码中看到相关信息。
然后assign用的是阻塞赋值。相加即满足相关的需求。
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

使用特权

评论回复
板凳
GoldSunMonkey|  楼主 | 2012-3-8 23:33 | 只看该作者
明天继续哈~

使用特权

评论回复
地板
wahahaabc| | 2012-3-8 23:59 | 只看该作者
1# GoldSunMonkey 俺也是对VHDL熟悉一些 VERILOG完全看不懂

使用特权

评论回复
5
lianshumou| | 2012-3-9 08:37 | 只看该作者
和你们相反, 我用verilog HDL  VHDL也就是只能看懂,有时还越看越别扭

使用特权

评论回复
6
pineapple2009| | 2012-3-9 08:40 | 只看该作者
占座学习

使用特权

评论回复
7
jakfens| | 2012-3-9 09:12 | 只看该作者
:(

使用特权

评论回复
8
GoldSunMonkey|  楼主 | 2012-3-9 09:17 | 只看该作者
和你们相反, 我用verilog HDL  VHDL也就是只能看懂,有时还越看越别扭
lianshumou 发表于 2012-3-9 08:37
无所谓嘛。。我们如果说的不对,你就指出来。

使用特权

评论回复
9
GoldSunMonkey|  楼主 | 2012-3-9 09:20 | 只看该作者
:(
jakfens 发表于 2012-3-9 09:12
怎么了?

使用特权

评论回复
10
zhushouxi| | 2012-3-9 20:09 | 只看该作者
:lol

使用特权

评论回复
11
nongfuxu| | 2012-3-9 20:27 | 只看该作者
对于Verilog只能做到基本看懂,想和大家一起学习Verilog 135的经典例子。

猴版太谦虚了。

使用特权

评论回复
12
nongfuxu| | 2012-3-9 20:31 | 只看该作者
老农对于VHDL只能看懂一点点,想和GSM学习VHDL

使用特权

评论回复
13
GoldSunMonkey|  楼主 | 2012-3-9 20:43 | 只看该作者
:L

使用特权

评论回复
14
GoldSunMonkey|  楼主 | 2012-3-9 20:43 | 只看该作者
那等我有空吧:)

使用特权

评论回复
15
GoldSunMonkey|  楼主 | 2012-3-9 20:53 | 只看该作者
第二讲:
4 位计数器
这例子非常好的表达了一个概念就是同步复位的概念。
这个概念非常重要,在XILINX的器件所有硬核都使用同步复位。
如果使用异步复位需要多耗费资源。

接着说计数器,计数器必须有时钟,如果要能进入到初始值,必须有复位输入。
和一个计数器的输出。该4位计数器,三个选项全部具备。
在时钟上升沿,如果复位信号有效,则复位为0,如果复位信号无效,则计数器需要加一。

另外让大家思考下,如果是计数器的最大值是 13怎么办?
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

使用特权

评论回复
16
wangjun403| | 2012-3-9 22:04 | 只看该作者
建立楼主讲的内容深一点哇

使用特权

评论回复
17
GoldSunMonkey|  楼主 | 2012-3-9 22:19 | 只看该作者
:L慢慢来啊。让所有人一起交流

使用特权

评论回复
18
2009gxs| | 2012-3-10 00:11 | 只看该作者
嗯 一起学习~~加油哈!

使用特权

评论回复
19
smallbugie| | 2012-3-10 07:36 | 只看该作者
努力 加油

使用特权

评论回复
20
xtaylg| | 2012-3-10 13:45 | 只看该作者
顶猴版!学verilog几个月了,以前上学时接触过一点

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:                     2014, 追逐梦想

264

主题

17215

帖子

523

粉丝