差别
这里会显示出您选择的修订版和当前版本之间的差别。
后一修订版 | 前一修订版 | ||
stepmxo2-lab9 [2018/08/28 16:06] group001 创建 |
stepmxo2-lab9 [2021/10/03 01:38] (当前版本) gongyu [逻辑电路] |
||
---|---|---|---|
行 1: | 行 1: | ||
- | =====实验目的===== | + | ## 密码锁 |
+ | |||
+ | ### 实验目的 | ||
* (1)熟悉和掌握FPGA开发流程和Lattice Diamond软件使用方法; | * (1)熟悉和掌握FPGA开发流程和Lattice Diamond软件使用方法; | ||
* (2)通过实验理解和掌握密码锁原理; | * (2)通过实验理解和掌握密码锁原理; | ||
* (3)学习用Verilog HDL行为级描述方法描述密码锁电路。 | * (3)学习用Verilog HDL行为级描述方法描述密码锁电路。 | ||
- | =====实验任务===== | + | |
+ | ### 实验任务 | ||
设计4位二进制密码锁,要求如下:\\ | 设计4位二进制密码锁,要求如下:\\ | ||
4位密码输入代码分别为Q、U、N、B,开箱时,钥匙插入钥匙孔右旋使D=1,如果输入密码(如:QUNB=0101)与设置的代码相同,则保险箱被打开,即输出端G=1,否则箱体发出报警。 | 4位密码输入代码分别为Q、U、N、B,开箱时,钥匙插入钥匙孔右旋使D=1,如果输入密码(如:QUNB=0101)与设置的代码相同,则保险箱被打开,即输出端G=1,否则箱体发出报警。 | ||
- | =====实验原理===== | + | |
+ | ### 实验原理 | ||
根据任务要求可知,只有当D=1,且输入密码=0101时,输出G=1,报警器W=0。其他情况下D=1,输出G=0,报警器W=1。若D=0, 输出G=0,报警器W=0。密码锁真值表如下:\\ | 根据任务要求可知,只有当D=1,且输入密码=0101时,输出G=1,报警器W=0。其他情况下D=1,输出G=0,报警器W=1。若D=0, 输出G=0,报警器W=0。密码锁真值表如下:\\ | ||
- | {{::密码锁真值表.png?nolink&300|}} | + | {{ ::密码锁真值表.png?nolink&500 |}} |
- | =====逻辑电路===== | + | |
- | {{::逻辑电路密码锁.png?nolink&300|}} | + | ### 逻辑电路 |
- | =====Verilog HDL建模描述===== | + | {{ ::逻辑电路密码锁.png?nolink&600 |}} |
+ | |||
+ | ### Verilog HDL建模描述 | ||
4位密码锁程序清单coded_lock.v \\ | 4位密码锁程序清单coded_lock.v \\ | ||
+ | <code verilog> | ||
module coded_lock | module coded_lock | ||
( | ( | ||
行 47: | 行 54: | ||
assign led2 = ~alarm; //led亮代表发出报警信号 | assign led2 = ~alarm; //led亮代表发出报警信号 | ||
endmodule | endmodule | ||
- | =====实验步骤===== | + | </code> |
+ | |||
+ | ### 实验步骤 | ||
- 打开Lattice Diamond,建立工程。 | - 打开Lattice Diamond,建立工程。 | ||
- 新建Verilog HDL设计文件,并键入设计代码。 | - 新建Verilog HDL设计文件,并键入设计代码。 |