4603|18

53

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

初学FPGA-2 [复制链接]

2011年9月29日8:30:26

 

1、assign一般多用于组合逻辑,其后变量必须为wire类型;对于输入和输出变量,如不声明其类型,默认为wire类型。

 

2、always多用于时序逻辑。

 

 

 

2011年9月30日

 

3、modelsim仿真问题解决,见文档ModelSim相关。

     网络真的很强大,modelsim问题都已解决,现在自己的问题及网上找的解决方法整理上传。

 

4、testbench是一种验证的手段。首先,任何设计都是会有输入输出的。但是在软环境中没有激励输入,也不会对你设计的输出正确性进行评估。那么此时便有一种,模拟实际环境的输入激励和输出校验的一种“虚拟平台”的产生。在这个平台上你可以对你的设计从软件层面上进行分析和校验,这个就是testbench的含义。

 

5、Testbench三步走:

    a、对被测试设计的顶层接口进行例化;

    b、给被测试设计的输入接口添加激励;

    c、判断被测试设计的输出响应是否满足设计要求。

 

6、最简单的Testbench应包含:时钟激励、复位激励及其它激励。

 

7、最简单的Testbench例子(时钟的产生)

    // 定义时钟周期为20ns,已定义“`timescal 1ns/1ps”

    parameter PERIOD 20;

  

    initial

    begin

        clk = 0;

        forever

            #(PERIOD/2)  clk = ~clk;

    end

 

    同例子的不同实现方法(用always来实现)

    parameter PERIOD 20;

   

    always begin

        #(PERIOD/2) clk = 0;

        #(PERIOD/2) clk = 1;

    end

 

 

8、最简单的Testbench例子(复位信号的产生)

    // 已经定义`timescale 1ns/1ps

    initial

    begin

        rst_n = 0;

        #100;            //延时100ns

        rst_n = 1;      //撤销复位

        ......

    end

 

9、以任务的形式给出复位激励

    initial

    begin

        reset_task(100);    // 复位100ns,已经定义 `timescale 1ns/1ps

        ........

    end

 

    task reset_task;

    input[15:0]  reset_time;    //定义复位时间

    begin

        rst_n = 0;

        #reset_time;    // 延时reset_time 时间

        rst_n = 1;

        ........

    end

    end task

 

 

 

 

2011年10月2日9:04:01

 

1、深入学习按键操作:

 

2、解决一个警告,有时感觉学习好无头绪,其实像这样去解决一个个的警告也不为一种好的学习方法。

   警告:Found pins functioning as undefined clocks 

    解决方法,见附件

 

3、自己通过学习对 如何检测按键按下动作 的理解

    定义寄存器(A,用到几个按键可对应定义几位),在每个时钟周期不断更新存放对应按键的状态值;在将该状态延时一个周期存放到另外一个定义的寄存器(B)中,然后进行以下操作:C = B & (~A);而得到的C状态可维持一个周期,在这个周期内可对其进行检测来判断是否有键按下。对以上所述用如下实例来加以说明:

A:     1 1 1 1 0 0 0 0

~A:   0 0 0 0 1 1 1 1

B:        1 1 1 1 0 0 0 0

C:        0 0 0 1 0 0 0

从上可以看出:当A状态翻转时(只能从1到0),可通过C的值判断出来:一个下降沿的到来

?问题:只要有状态的变化,都能检测出来,即既能检测下降沿又能检测下降沿。(自己正在尝试中)

 

程序实例:

//-------------------------------------------------------------
//说明:实现按键按下(只实现下降边沿)功能检测
//-------------------------------------------------------------
reg[3:0] sw_reg1;   //存放键值状态 

always @ (posedge clk or negedge rst_n)
   if (!rst_n)    //异步复位
      sw_reg1 <= 4'b1111;
 else
      // 每一个时钟上升沿到来时,读取按键的值,并存入到定义的寄存器中
      sw_reg1 <= {sw1_n, sw2_n, sw3_n, sw4_n};

 

//延时一个时钟周期,存放键值状态  
reg[3:0] sw_reg2;  

always @ (posedge clk or negedge rst_n)
   if (!rst_n)
      sw_reg2 <= 4'b1111;
   else
      sw_reg2 <= sw_reg1;

 

//当寄存器sw_reg1由1变为0时,sw_reg的值变为高,维持一个时钟周期
wire[3:0] sw_reg = sw_reg2 & (~sw_reg1);

 

 

 

4、自学几个基础知识

  a、变量分为两种:网络型(nets type)和寄存器型(register type);

  b、nets型指输出始终根据输入的变化而更新其值的变量,它一般指的是硬件电路中的各种物理连接;最常用的wire(连线类型),常用来表示以assign语句赋值的组合逻辑信号。Verilog HDL模块中的输入/输出信号类型缺省时,默认为wire类型。

[ 本帖最后由 xiaomiking 于 2011-10-2 14:15 编辑 ]

ModesSim相关.doc

29 KB, 下载次数: 20

Quartus II警告与错误解决.doc

359.5 KB, 下载次数: 23

此帖出自FPGA/CPLD论坛

最新回复

顶一下 这样初学者都能把自己学习的足迹记录下来 对后来者是一个很好的指导  详情 回复 发表于 2012-5-3 16:46
点赞 关注
个人签名If you want something, just do it !
 

回复
举报

391

帖子

1

TA的资源

一粒金砂(高级)

沙发
 
共同学习
此帖出自FPGA/CPLD论坛
 
 

回复

1万

帖子

16

TA的资源

版主

板凳
 

楼主坚持下去哈,顶下

此帖出自FPGA/CPLD论坛
个人签名http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
 
 
 

回复

53

帖子

0

TA的资源

一粒金砂(中级)

4
 
 
此帖出自FPGA/CPLD论坛
个人签名If you want something, just do it !
 
 
 

回复

53

帖子

0

TA的资源

一粒金砂(中级)

5
 

回复 沙发 逆风飞翔 的帖子

此帖出自FPGA/CPLD论坛
个人签名If you want something, just do it !
 
 
 

回复

53

帖子

0

TA的资源

一粒金砂(中级)

6
 

回复 板凳 ddllxxrr 的帖子

   多多指教!
此帖出自FPGA/CPLD论坛
个人签名If you want something, just do it !
 
 
 

回复

53

帖子

0

TA的资源

一粒金砂(中级)

7
 
学而有友,相信能更好地学下去!
此帖出自FPGA/CPLD论坛
个人签名If you want something, just do it !
 
 
 

回复

53

帖子

0

TA的资源

一粒金砂(中级)

8
 
打下酱油,
此帖出自FPGA/CPLD论坛
个人签名If you want something, just do it !
 
 
 

回复

6892

帖子

0

TA的资源

五彩晶圆(高级)

9
 

坚持就是胜利!

此帖出自FPGA/CPLD论坛
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 
 
 

回复

17

帖子

0

TA的资源

一粒金砂(初级)

10
 
支持楼主
此帖出自FPGA/CPLD论坛
 
 
 

回复

53

帖子

0

TA的资源

一粒金砂(中级)

11
 

回复 9楼 eeleader 的帖子

国庆  版主也不休息呀~~~
此帖出自FPGA/CPLD论坛
个人签名If you want something, just do it !
 
 
 

回复

53

帖子

0

TA的资源

一粒金砂(中级)

12
 

回复 10楼 kebon22 的帖子

       
此帖出自FPGA/CPLD论坛
个人签名If you want something, just do it !
 
 
 

回复

6

帖子

0

TA的资源

一粒金砂(中级)

13
 
好!!
此帖出自FPGA/CPLD论坛
 
 
 

回复

53

帖子

0

TA的资源

一粒金砂(中级)

14
 

回复 13楼 gk0000gk 的帖子

此帖出自FPGA/CPLD论坛
个人签名If you want something, just do it !
 
 
 

回复

249

帖子

0

TA的资源

纯净的硅(中级)

15
 
楼主有心啊
此帖出自FPGA/CPLD论坛
 
 
 

回复

31

帖子

0

TA的资源

一粒金砂(中级)

16
 
呵呵
此帖出自FPGA/CPLD论坛
 
 
 

回复

18

帖子

0

TA的资源

一粒金砂(初级)

17
 

刚刚开始学习,谢谢楼主了

此帖出自FPGA/CPLD论坛
 
 
 

回复

6892

帖子

0

TA的资源

五彩晶圆(高级)

18
 
楼主好样,就是要这样学,才会!
此帖出自FPGA/CPLD论坛
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 
 
 

回复

168

帖子

0

TA的资源

纯净的硅(初级)

19
 
顶一下 这样初学者都能把自己学习的足迹记录下来 对后来者是一个很好的指导
此帖出自FPGA/CPLD论坛
个人签名无论什么时候,做什么事情,要思考
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表