EGO1—调用74hc163的IP核实现0,1,2,3,6,7输出序列的模6计数器

数字设计 FPGA 应用,数字设计 FPGA 应用,第四章时序逻辑设计和实现,课程设计性质的作业题2

第二题:再建一个工程,调用该 IP 核实现 0,1,2,3,6,7 输出序列的模 6 计数器,并在状态为 7 时输出 1。对该工程进行仿真测试(必须)
使用软件: Vivado
开发板: EGO1采用Xilinx Artix-7系列XC7A35T-1CSG324C FPGA

74HC163及IP核创建:箭头

1. 问题分析

(1)由题目可以状态转换图
在这里插入图片描述
(2)由状态转换图可以写出状态转移表
在这里插入图片描述
(3)画卡诺图得出转移方程输出方程

Q2*=Q2Q0'+Q2'Q1Q0
Q1*=Q1Q0'+Q2'Q0
Q0*=Q0'

Y=Q2Q1Q0

(4) 判断自启动
100/0 —>101/0 —>000/0
因此可以自启动

2. verilog代码(调用ip)

`timescale 1ns / 1ps
//
// Create Date: 2022/09/24 21:32:34
// Design Name: 
// Module Name: v_74x163_ip
// Revision 0.01 - File Created
// Additional Comments:
// 
//
//文章有用的话记得给靓仔点个赞表示鼓励哟~
module v_74x163_ip(clk,led);
input clk;
output led;
wire ld_l,rco;
wire[3:0] d;
wire[3:0] q;
assign d[3]=0,d[2]=((q[2])&(~q[0]))|((~q[2])&q[1]&q[0]),d[1]=q[1]&(~q[0])|(~q[2])&q[0],d[0]=~q[0];
assign led=q[0]&q[1]&q[2];
v_74x163_0 uut(
    .clk(clk),
    .clr_l(1), //清零端无效
    .ld_l(0), //置数
    .enp(1),
    .ent(1),
    .d(d),
    .q(q),
    .rco(rco)
);
endmodule

3. 仿真情况

3.1 仿真代码

`timescale 1ns / 1ps
//
// Create Date: 2022/09/24 20:55:51
// Design Name: 
// Module Name: sim_74x163
// Revision 0.01 - File Created
// Additional Comments:
// 
//
//文章有用的话记得给靓仔点个赞表示鼓励哟~
module sim_74x163();
    reg clk=0;
    reg clr_l=1;
    reg ld_l=1;
    reg enp=1;
    reg ent=1;
    reg[3:0] d=0;
    wire[3:0] q;
    wire rco;
    v_74x163 uut(clk,clr_l,ld_l,enp,ent,d,q,rco);
    always #10 clk=~clk;
endmodule

3.2 仿真结果

在这里插入图片描述
从仿真图中看到,实现了 0,1,2,3,6,7 输出序列的模 6 计数器,并在状态为 7 时输出 1

4. 下载进实验板测试

使用的EGO1实验板的晶振频率为100MHz,进行分频处理:

//分频处理
always@(posedge clk)//每过 1/100M s,divclk_cnt+1
begin
    if(divclk_cnt == 50000000)//仿真的时候改成50
    begin
        divclk=~divclk;
        divclk_cnt=0;
    end
    else
    begin
    divclk_cnt = divclk_cnt + 1'b1;
    end
end

然后把verilog代码中的 uut函数传入的clk,改为divclk即可

约束文件:

## 时钟
set_property PACKAGE_PIN P17 [get_ports clk]
set_property IOSTANDARD LVCMOS33 [get_ports clk]
## led
set_property PACKAGE_PIN F6 [get_ports led]
set_property IOSTANDARD LVCMOS33 [get_ports led]

生成比特流文件然后下载测试结果与仿真结果一致,每隔5s亮1s,表示满6进位:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值