0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Xilinx FPGA学习笔记

FPGA之家 来源:FPGA之家 2023-11-02 09:48 次阅读

一、时序设计

方法1.通过状态机来实现,通过verilog控制FPGA,让它该快的时候快,该慢的时候慢。

方法2.FPGA中运行CPU

把逻辑控制顺序复杂的事情用C代码来实现,而实时处理部分用verilog实现,并且verilog这部分可以被C代码控制。Xilinx的FPGA目前支持的CPU有Microblaze,ARM9,POWERPC,其中Microblaze是软核,其余的两款是硬核。

(1)软核就是用代码实现的CPU核,配置灵活;

(2)硬核就是一块电路,已经做好了,不能再发生变化;

软核灵活性好,但是要占用FPGA的资源。硬核不占用FPGA的资源,速度和性能更好。比如Xilinx的DDR内存控制器,就是一种硬核,其运行速度很高。

二、基础语法

1. always @(),括号里是*,表明是一直敏感的;

2. (1) <=  非阻塞赋值,在一个always模块中,所有语句一起更新

(2) = 阻塞赋值,或者给信号赋值,如果在always模块中,这条语句被立刻执行。

非阻塞赋值

always @(posedge clk)begin
   a <= b;
       c <= a;    
end

执行结果是a的值是b,c的结果依旧是a

阻塞赋值

always @(posedge clk)begin
     a = b;
      c = a;
end

执行结果a的值是b,c的结果也是b。

一般我们使用的都是非阻塞的赋值语句,这样可以很好地控制同步性。

3、预处理命令
`include file1.v
`define X=1;
`define Y;
`ifdef Y
     Z = 1;
`else
      Z = 0;
`endid

有时候需要一些公共的宏参数,我们可以放在一个文件中,比如文件名XXX.v,。那么我们就可以 `include XXX.v ,就可以包含文件中定义的宏参数

三、小练习

1.加法器的设计

module adder(
input [3:0] a,
input [3:0] b,
input cin,
output [3:0] sum,
output cout
);

assign {cout,sum} = a + b + cin;
endmodule

RTL视图

8f87eed6-7914-11ee-939d-92fbcf53809c.png

RTL 技术原理图

8f99577a-7914-11ee-939d-92fbcf53809c.png

仿真代码

`timescale 1ns / 1ps //1ns的仿真刻度,1ps的仿真精度
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 2017/10/22 1058
// Design Name:
// Module Name: simu
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////


module simu(

);

reg [3:0] a;
reg [3:0] b;
reg cin;

wire cout;
wire [3:0] sum;

reg [4:0] i,j; //中间变量

adder inst(
.a(a),
.b(b),
.cin(cin),
.cout(cout),
.sum(sum)

);

initial begin
a =0; b=0; cin=0;
for(i=1;i<16;i=i+1)
#10 a = i;
end

initial begin
for(j=1;j<16;j=j+1)
#10 b = j;
end

initial begin
$monitor($time,,,"%d + %d + %b = {%b,%d}",a,b,cin,cout,sum);
#160 $finish; //160ns 后仿真结束
end

endmodule

仿真波形

8fc7290c-7914-11ee-939d-92fbcf53809c.png

打印输出结果

8fec7388-7914-11ee-939d-92fbcf53809c.png

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21320

    浏览量

    593194
  • Xilinx
    +关注

    关注

    70

    文章

    2121

    浏览量

    119373
  • 内存
    +关注

    关注

    8

    文章

    2767

    浏览量

    72765
  • Verilog
    +关注

    关注

    28

    文章

    1326

    浏览量

    109302
  • 状态机
    +关注

    关注

    2

    文章

    486

    浏览量

    27165

原文标题:Xilinx FPGA 学习笔记

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    PLD每周焦点聚焦(11.19-11.25)

    PLD每周焦点聚焦(11.19-11.25):赛灵思(Xilinx)将展示Zynq-7000 All Programmable SoC工业自动化解决方案;Altera Quartus II 12.1版借助高阶设计流程 加速系统开发;Xilinx
    发表于 11-25 11:17 1517次阅读

    Xilinx学习资料

    哪位大神比较熟悉XilinxFPGA,本人新手一枚,想学习FPGA,希望能告知一些XilinxFPG
    发表于 03-11 01:05

    FPGA学习笔记汇总(7.13更新)

    又有好资料跟大家分享了,再次感谢楼主@oldbeginner {:4_114:}FPGA 学习笔记01 (LCD 1602,verilog)FPGA
    发表于 06-20 10:42

    分享一本学习xilinx FPGA的好书

    分享一本学习xilinx FPGA的好书
    发表于 07-18 13:44

    成为Xilinx FPGA设计专家(基础篇)

    动手整合一下。一方面给自己梳理梳理相关知识架构,另一方面的话,跟大家分享分享,希望对大家有所帮助,当然更加希望Xilinx? FPGA工程师/爱好者能跟我们一起来探讨学习!《成为Xilinx
    发表于 11-03 17:15

    入门 Z-turn Board 学习笔记(汇总ing)

    不好意思,5555......)。Xilin的 zynq7000平台分为PS和PL两个部分。PS就是ARM MPU,PL部分就是XilinxFPGA。可以看作PL部分是ARM的一个高性能的外设,比如当你系统需要10个串口
    发表于 07-06 11:54

    【Artix-7 50T FPGA申请】FPGA由Altera转Xilinx系列笔记

    申请理由:项目描述:本人之前一直从事Altera FPGA学习套件的教程资料研发,如今转向Xilinx,考虑Xilinx现在主推的工具是vivado,而S6系列芯片无法使用,为了使自
    发表于 10-11 18:15

    Xilinx-ZYNQ7000学习笔记

    Xilinx-ZYNQ7000系列-学习笔记(3):系统复位与启动一、复位ZYNQ-7000 SoC系统中的复位可以由硬件、看门狗定时器、JTAG控制器或软件产生,可用于驱动系统中每个模块的复位信号
    发表于 01-25 06:49

    Xilinx-ZYNQ7000学习笔记

    Xilinx-ZYNQ7000系列-学习笔记(3):系统复位与启动一、复位ZYNQ-7000 SoC系统中的复位可以由硬件、看门狗定时器、JTAG控制器或软件产生,可用于驱动系统中每个模块的复位信号
    发表于 01-25 07:05

    Xilinx FPGA开发实用教程(第2版)-徐文波、田耘

    本书系统地论述了Xilinx FPGA开发方法、开发工具、实际案例及开发技巧,内容涵盖Xilinx器件概述、Verilog HDL开发基础与进阶、Xilinx
    发表于 07-31 16:20 1.1w次阅读
    <b class='flag-5'>Xilinx</b> <b class='flag-5'>FPGA</b>开发实用教程(第2版)-徐文波、田耘

    Xilinx FPGA学习笔记(1):1602液晶IP核设计与实现

    电子发烧友网核心提示 :简单介绍设计的LCD液晶IP核的思路,首先生成100us的时钟,然后根据初始化顺序,编写状态机。最终设计效果是在1602液晶屏上可以静态显示16*2的任意字符串(可
    发表于 11-20 14:22 6828次阅读

    Xilinx-FPGA-引脚功能详细介绍

    FPGA学习资料教程之Xilinx-FPGA-引脚功能详细介绍
    发表于 09-01 15:27 0次下载

    Xilinx-FPGA高级开发工具

    FPGA学习资料教程之Xilinx-FPGA高级开发工具,感兴趣的可以看看。
    发表于 09-01 15:27 0次下载

    如何借助Xilinx FPGA和MATLAB技术加速机器学习应用

    本演讲将结合FPGA在机器学习的发展趋势、应用和需求,特别介绍在基于MATLAB®完成深度学习算法设计后,FPGA在机器学习方面的技术优势和
    的头像 发表于 12-25 07:08 2275次阅读
    如何借助<b class='flag-5'>Xilinx</b> <b class='flag-5'>FPGA</b>和MATLAB技术加速机器<b class='flag-5'>学习</b>应用

    Altera FPGA CPLD学习笔记

    Altera FPGA CPLD学习笔记(肇庆理士电源技术有限)-Altera FPGA CPLD学习
    发表于 09-18 10:54 79次下载
    Altera <b class='flag-5'>FPGA</b> CPLD<b class='flag-5'>学习</b><b class='flag-5'>笔记</b>