【FPGA每周一练】FPGA的HDL建模第一练
本次电子发烧友论坛邀请@chenchu0910 ,来和大家一起练习FPGA的HDL建模。
课程简介:这一版的论坛笔记只适合入门者,因为这论坛笔记按着由浅入深编辑的,只适合做入门引子。建议初学者者先从一些权威的参考书去了解“什么是Verlilog HDL 语言”,同时在跟着我们的论坛笔记进行练习,以达到快速理解的目的。FPGA 宛一堆乐高积和Verilog HDL 是自己的手(工具) ,自己可以随心所愿的要怎么拆就怎么拆。
课程分类:
一、基础电路设计;
二、典型常用电路设计;
三、综合运用电路设计。
首先,我们练习基础电路。因为大规模设计就是由像触发器、锁存器、多路选择器、解码器、编码器、饱和/非饱和计数器、FSM等常用基本电路组成。也就是说电路设计,你写到这要的单元就可以啦。在复杂的电路也是由他们构成。所以基础电路是根本,一点要练熟基础。
本周课题:
1、设计一个全加器。
2、四选一的多路选择器。
是不是觉得很简单,一蹴而就?答案下周三更新。(您可以随时在网上搜索,但不建议将与他人讨论)
PS:每周我们将在回答的用户中由嘉宾抽取一位幸运用户进行积分奖励!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
- module h(
- input a,b,cin,
- output sum,out);
- assign sum=a^b^cin;
- assign out=a&b+b&cin+a&cin;
- endmodule
- 然后是顶层例化
- module ADD (a,b,cin,sum,out);
- parameter SIZE=4;
- input[SIZE:1] a,b;
- output[SIZE:1]sum;
- input cin;
- output out;
- wire [SIZE:1] temp;
- h
- add1(.a(a[1]),.b(b[1]),.cin(cin),
- .sum(sum[1]),.out(temp[1])
- ),
- add2(.a(a[2]),.b(b[2]),.cin(temp[1]),
- .sum(sum[2]),.out(temp[2])
- ),
- add3(.a(a[3]),.b(b[3]),.cin(temp[2]),
- .sum(sum[3]),.out(temp[3])
- ),
- add4(a[4],b[4],temp[3],sum[4],out);
- endmodule
复制代码一周热门 更多>