3.2 3-8译码器设计和IP核_第1页
3.2 3-8译码器设计和IP核_第2页
3.2 3-8译码器设计和IP核_第3页
3.2 3-8译码器设计和IP核_第4页
3.2 3-8译码器设计和IP核_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

3.1

第一个工程——多数表决器多数表决器的分析和逻辑实现多数表决器的工程创建多数表决器的VerilogHDL源文件创建多数表决器的VerilogHDL代码实现及RTL分析约束综合实现仿真比特流文件生成下载和测试3.2

3-8译码器设计和IP核3.2.1译码器的实现3.2.2译码器IP核生成3.3调用IP核实现多数表决器3.3.1使用74x138实现多数表决器的设计3.3.2构建新工程并调用IP核第三章组合逻辑电路与VIVADO进阶ABCG1G2AG2BY0Y1Y2Y3Y4Y5Y6Y774x138译码器74x138是数字电路课程重点内容之一。译码器的设计比较简单,使用Verilog语言实现译码器就更为简单。在完成设计并下载到电路板后,学习将工程转化为可以被其他工程调用的IP核。本节内容1.译码器的实现2.生成译码器IP核3.23-8译码器设计和IP核新建一个工程p_74x138。或者从设计好的工程(多数表决器工程)开始,将工程另存为名称为p_74x138的工程。

3.2.1译码器的实现

译码器的实现-功能表分析ABCG1G2AG2BY0Y1Y2Y3Y4Y5Y6Y774x138g1g2a_lg2b_la[0]a[1]a[2]y_l[0]y_l[1]y_l[2]y_l[3]y_l[4]y_l[5]y_l[6]y_l[7]modulev74x138(g1,g2a_l,g2b_l,a,y_l);inputg1,g2a_l,g2b_l;input[2:0]a;output[7:0]y_l;reg[7:0]y_l=0;always@(g1org2a_lorg2b_lora)beginif(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;endcaseelse

y_l=8'b11111111;endendmodule

译码器的实现-代码分析

模块定义

模块输入输出声明变量定义always块,如果有输入发生变化,执行如果使能有效根据输入端的值进行译码如果使能无效Always块结束模块结束ABCG1G2AG2BY0Y1Y2Y3Y4Y5Y6Y774x138g1g2a_lg2b_la[0]a[1]a[2]y_l[0]y_l[1]y_l[2]y_l[3]y_l[4]y_l[5]y_l[6]y_l[7]modulev74x138(g1,g2a_l,g2b_l,a,y_l);inputg1,g2a_l,g2b_l;input[2:0]a;output[7:0]y_l;reg[7:0]y_l=0;always@(g1org2a_lorg2b_lora)beginif(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;endcaseelse

y_l=8'b11111111;endendmodule

译码器的实现-RTL分析通过RTL分析,得到RTL分析的原理图如图

使用RAM实现的译码逻辑

使能组合逻辑If语句使用多路选择器实现modulesim1;regg1;regg2a_l;regg2b_l;reg[2:0]a;wire[7:0]y_l;v74x138uut(g1,g2a_l,g2b_l,a,y_l);initialbeging1=0;g2a_l=0;g2b_l=0;a=0;#100;g1=1;g2a_l=0;g2b_l=0; endalways#100a=a+1;endmodule

译码器的实现-仿真文件模块定义变量定义调用被仿真模块初始化always块模块结束set_propertyPACKAGE_PINF3[get_portsg1]set_propertyPACKAGE_PINH4[get_portsg2a_l]set_propertyPACKAGE_PINN4[get_portsg2b_l]set_propertyPACKAGE_PINR2[get_ports{a[2]}]set_propertyPACKAGE_PINR3[get_ports{a[1]}]set_propertyPACKAGE_PINP4[get_ports{a[0]}]

译码器的实现-约束文件ABCG1G2AG2BY0Y1Y2Y3Y4Y5Y6Y774x138g1g2a_lg2b_la[0]a[1]a[2]y_l[0]y_l[1]y_l[2]y_l[3]y_l[4]y_l[5]y_l[6]y_l[7]拨码开关T9SW0IO输入T8SW1IO输入T7SW2IO输入R6SW3IO输入P6SW4IO输入R5SW5IO输入P4SW6IO输入R3SW7IO输入R2SW8IO输入N4SW9IO输入H4SW10IO输入F3SW11IO输入LEDP9LED0IO输出R8LED1IO输出R7LED2IO输出T5LED3IO输出N6LED4IO输出T4LED5IO输出T3LED6IO输出T2LED7IO输出R1LED8IO输出G5LED9IO输出H3LED10IO输出E3LED11IO输出set_propertyPACKAGE_PINP9[get_ports{y_l[0]}]set_propertyPACKAGE_PINR8[get_ports{y_l[1]}]set_propertyPACKAGE_PINR7[get_ports{y_l[2]}]set_propertyPACKAGE_PINT5[get_ports{y_l[3]}]set_propertyPACKAGE_PINN6[get_ports{y_l[4]}]set_propertyPACKAGE_PINT4[get_ports{y_l[5]}]set_propertyPACKAGE_PINT3[get_ports{y_l[6]}]set_propertyPACKAGE_PINT2[get_ports{y_l[7]}]

译码器的实现-约束文件ABCG1G2AG2BY0Y1Y2Y3Y4Y5Y6Y774x138g1g2a_lg2b_la[0]a[1]a[2]y_l[0]y_l[1]y_l[2]y_l[3]y_l[4]y_l[5]y_l[6]y_l[7]

译码器的实现-下载到实验板IP核,全称知识产权核(IntellectualPropertycore),是指某一方提供的、形式为逻辑单元的可重用模块。IP核通常已经通过了设计验证,设计人员以IP核为基础进行设计,可以缩短设计所需的周期。IP核可以通过协议由一方提供给另一方,或由一方独自占有。IP核的概念源于产品设计的专利证书和源代码的版权等。设计人员能够以IP核为基础进行FPGA的逻辑设计,以减少设计周期。在VIVADO下设计和使用IP核必须遵循VIVADO的步骤。3.2.2

3-8译码器IP核实现VIVADO提倡的积木式设计,积木就是IP核。用户可以将功能模块设计做成一个一个IP核,然后“组装”起来成为产品。VIVADO本身提供了很多IP核可供用户使用,例如数学运算(乘法器、除法器、浮点运算器等)、信号处理(FFT、DFT、DDS等)。用户也可以使用第三方的IP核来加快设计,例如使用第三方提供的神经网络处理IP核。开发者也

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论