Verilog及FPGA学习考试必备经典程序(四).pdf
文本预览下载声明
目录
1. 基本门电路的几种描述方法2
2. 用 bufif1 关键字描述的三态门3
3. 用 assign 语句描述的三态门 3
4. 三态双向驱动器3
5. 三态双向驱动器3
6. 3-8 译码器 4
7. 8-3 优先编码器4
8. 用函数定义的 8-3 优先编码器5
9. 七段数码管译码器 6
10. 奇偶校验位产生器 7
11. 用 if-else 语句描述的 4 选 1 MUX7
12. 用 case 语句描述的 4 选 1 MUX 7
13. 用组合电路实现的 ROM8
14. 基本 D 触发器 9
15. 带异步清 0、异步置 1 的 D 触发器 9
16. 带同步清 0、同步置 1 的 D 触发器 10
17. 带异步清 0、异步置 1 的JK 触发器 11
18. 电平敏感的 1 位数据锁存器 11
19. 带置位和复位端的 1 位数据锁存器 12
20. 8 位数据锁存器 12
21. 8 位数据寄存器 12
22. 8 位移位寄存器 13
23. 可变模加法/减法计数器 13
24. 4 位 Johnson 计数器(异步复位) 14
25. 256 × 8 RAM 模块 14
26. 256 × 16 RAM 块 15
27. 4 位串并转换器 15
28. 用函数实现简单的处理器 16
29. 微处理器的测试代码 17
30. 乘累加器(MAC )代码 18
31. 乘累加器的测试代码 19
1
1. 基本门电路的几种描述方法
(1 )门级结构描述
module gate1(F,A,B,C,D);
input A,B,C,D;
output F;
nand(F1,A,B); //调用门元件
and(F2,B,C,D);
or(F,F1,F2);
endmodule
(2 )数据流描述
module gate2(F,A,B,C,D);
input A,B,C,D;
output F;
assign F=(AB)|(BCD); //assign 持续赋值
endmodule
(3 )行为描述
module gate3(F,A,B,C,D);
input A,B,C,D;
output F;
reg F;
always @(A or B or C or D) //过程赋值
begin
F=(AB)|(BCD);
end
endmodule
2
2. 用bufif1 关键字描述的三态门
module tri_1(in,en,out);
input in,en;
output out;
tri out;
bufif1 b1(out,in,en); //注意三态门端口的排列顺序
endmodule
3. 用assign 语句描述的三态门
module tri_2(out,in,en);
output out;
input in,en;
assign out = en ? in : bz;
//若 en=1 ,则out=in ;若en=0 ,则out 为高阻态
endmodule
4. 三态双向驱动器
module bidir(tri_inout,out,in,en,b);
inout tri_inout;
output out;
input in,en,b;
assign tri_inout = en ? in : bz;
assign
显示全部