3.2 3-8译码器设计和IP核

该文档的MOOC的视频教程

1 译码器的实现

1.1 功能表分析

o表示低有效(即0有效),用bubble命名;c 是高位
在这里插入图片描述
在这里插入图片描述

1.2 真值表分析

在这里插入图片描述

1.3 代码分析

新建一个工程。或者从设计好的工程(多数表决器工程)开始,将工程另存为名称为p_74x138的工程。

① 模块定义
② 模块输入输出声明
③ 变量定义
④ always 块,如果有输入发生变化,执行
⑤ 如果使能有效
⑥ 根据输入端的值进行译码
⑦ 如果使能无效
⑧ Always 块结束
⑨ 模块结束

module v74x138(g1,g2a_l,g2b_l,a,y_l); 
input g1,g2a_l,g2b_l; 
input [2:0] a; 
output [7:0] y_l; 
reg [7:0] y_l=0; 
always @ (g1 or g2a_l or g2b_l or a) begin
    if (g1 && ~g2a_l && ~g2b_l) //逻辑与,全部使能有效
        case (a) 
        7:y_l=8'b01111111;
        6:y_l=8'b10111111;
        5:y_l=8'b11011111;
        4:y_l=8'b11101111;
        3:y_l=8'b11110111;
        2:y_l=8'b11111011;
        1:y_l=8'b11111101;
        0:y_l=8'b11111110;
        default:y_l=8'b11111111;
        endcase
    else
        y_l=8'b11111111;
end
endmodule

1.4 RTL分析

① 通过RTL分析,得到RTL分析的原理图如图
② 使用RAM实现的译码逻辑
③ 使能组合逻辑
④ If语句使用多路选择器实现
在这里插入图片描述

1.5 仿真文件

① 模块定义
② 变量定义
③ 调用被仿真模块
④ 初始化
⑤ always 块
⑥ 模块结束
在这里插入图片描述

module sim_v74x138(  );
reg g1;
reg g2a_l;
reg g2b_l;
reg [2:0] a;
wire [7:0] y_l;
v74x138 uut (g1, g2a_l, g2b_l, a, y_l);
initial begin
    g1 = 0;
    g2a_l = 0;
    g2b_l = 0;
    a = 0;
    #100;
    g1 = 1;
    g2a_l = 0;
    g2b_l = 0;
end

always # 100 a=a+1; 
endmodule

在这里插入图片描述

1.6 约束文件

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.7 综合

在这里插入图片描述

1.8 下载到实验板

编译后下载到电路板,拨动拨码开关,当使能无效时,所有的LED点亮,因为输出全为1。

使能有效时,对输入进行译码,对应的LED熄灭。

需要注意,应根据板子的说明或通过查看板子上拨码开关和LED的标识实现约束文件,在完成约束文件后需重新实现(Implement)和生成比特流文件,然后再下载。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2 设计译码器IP核

IP核,全称知识产权核(Intellectual Property core),是指某一方提供的、形式为逻辑单元的可重用模块。
IP核通常已经通过了设计验证,设计人员以IP核为基础进行设计,可以缩短设计所需的周期。
IP核可以通过协议由一方提供给另一方,或由一方独自占有。
IP核的概念源于产品设计的专利证书和源代码的版权等。设计人员能够以IP核为基础进行FPGA的逻辑设计,以减少设计周期。在VIVADO下设计和使用IP核必须遵循VIVADO的步骤。
Vivado的IP核
VIVADO提倡的积木式设计,积木就是IP核。用户可以将功能模块设计做成一个一个IP核,然后“组装”起来成为产品。
VIVADO本身提供了很多IP核可供用户使用,例如数学运算(乘法器、除法器、浮点运算器等)、信号处理(FFT、DFT、DDS等)。
用户也可以使用第三方的IP核来加快设计,例如使用第三方提供的神经网络处理IP核。
开发者也可以开发自己的IP核,自己在各个工程中调用或提供给第三方使用。

2.1 设计译码器IP核步骤

验证功能正确后,就可以生成IP核了,最后生成的IP核和约束文件无关。
在当前工程环境下,点击菜单栏Tools,在弹出的子菜单上找到并点击Create and Package IP,在弹出的窗口上直接点击Next。(Tools->Create and Package New IP)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
之后弹出的创建和封装IP窗口,保持选项不变。IP核的位置保存在d:/provivado/p_74x138/p_74x138.srcs在这里插入图片描述
之后弹出新的创建和封装IP窗口,显示了新IP的信息。
在这里插入图片描述
生成IP核
在这里插入图片描述

2.2 属性设置

2.2.1 Identification身份

Identification(身份)需要填写这两项名称,供应商显示名称、公司URL显示名称
在这里插入图片描述

2.2.2 Compatibility兼容性

在这里插入图片描述

2.2.3 File Groups

在这里插入图片描述

2.2.4 Ports and Interfaces

端口和接口不需要更改
在这里插入图片描述

2.2.5 Customization GUI界面定制

逻辑符号以图形的方式展示了该IP的输入输出借口
在这里插入图片描述

2.2.6 Review and Package

修改之后,需要重新生成IP核
在这里插入图片描述

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值