3628|11

356

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

从零开始学FPGA我的第二个实验(记录一下) [复制链接]

 
 感谢小梅哥!!
昨天做了我FPGA的第一个实验
从零开始学FPGA我的第一个实验(记录一下)
今天第二个实验38译码器
真值表

原理:
有三个(一位)输入
一个输出(8位)
使用了一个always块,always块语句注意阻塞赋值和非阻塞赋值(<=, = )
{a,b,c}位拼接把三个一位的拼接成一个3位的
位拼接:
{a,b[3:0],w,3'b101}等价于{a,b[3],b[2],b[1],b[0],w,1'b1,1'b0,1'b1}
{4{w}}等价于{w,w,w,w}
{b,{3{a,b}}}等价于{b,a,b,a,b,a,b}
case用法和c类似记住还有个default
3'b000表示位宽是3 的二进制 000
位宽+进制+数值
进制+数值(默认位宽有机器系统决定)
数字(默认10进制)
2进制 b/B bin
8进制 o/O octonary
10进制 d/D decimal
16进制h/H hex

  1. module smg3_8(a,b,c,out);

  2.         input a;//输入端口a
  3.         input b;//输入端口b
  4.         input c;//输入端口c
  5.        
  6.         output reg [7:0]out;//输出端口out
  7.        
  8.         always@(a,b,c)begin
  9.                 case({a,b,c})
  10.                         3'b000:  out=8'b0000_0001;//下划线不影响
  11.                         3'b001:        out=8'b0000_0010;
  12.                         3'b010:        out=8'b0000_0100;
  13.                         3'b011:        out=8'b0000_1000;
  14.                         3'b100:        out=8'b0001_0000;
  15.                         3'b101:        out=8'b0010_0000;
  16.                         3'b110:        out=8'b0100_0000;
  17.                         3'b111:        out=8'b1000_0000;
  18.                         //default:
  19.                 endcase
  20.         end
  21. endmodule
复制代码
测试代码:
reg型是激励信号源的
wire 型的是输出信号的观察信号
  1. `timescale 1ns/1ns

  2. module smg3_8_tb;

  3.         reg a;//reg 型是激励信号源
  4.         reg b;
  5.         reg c;
  6.        
  7.         wire [7:0]out;//wire 型的是出信号的观察信号
  8.         smg3_8 smg(
  9.                    .a(a),
  10.                                   .b(b),
  11.                                   .c(c),
  12.                                   .out(out)
  13.         );
  14.        
  15.         initial begin
  16.         a = 0;b = 0; c = 0;
  17.         #200;
  18.         a = 0;b = 0; c = 1;
  19.         #200;
  20.         a = 0;b = 1; c = 0;
  21.         #200;
  22.         a = 0;b = 1; c = 1;
  23.         #200;
  24.         a = 1;b = 0; c = 0;
  25.         #200;
  26.         a = 1;b = 0; c = 1;
  27.         #200;
  28.         a = 1;b = 1; c = 0;
  29.         #200;
  30.         a = 1;b = 1; c = 1;
  31.         #200;
  32.         $stop;
  33.         end
  34.                
  35. endmodul
复制代码
RTL仿真:

符合设计初衷
然后是门级仿真

发现和RTL仿真有些区别会出现一些跳变的过度值如0000 0000,现在还不知道怎么去避免。

下面是我在开发板上做的测试


谢谢小梅哥!!

此帖出自Altera SoC论坛

最新回复

汇总贴在此: 从零开始学FPGA——by ihalin https://bbs.eeworld.com.cn/forum. ... 5881&fromuid=536508   详情 回复 发表于 2016-7-25 10:45
点赞 关注
 
 

回复
举报

1万

帖子

2854

TA的资源

管理员

来自 2楼
 
汇总贴在此:
从零开始学FPGA——by ihalin
https://bbs.eeworld.com.cn/forum. ... 5881&fromuid=536508

此帖出自Altera SoC论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
个人签名

玩板看这里:

https://bbs.eeworld.com.cn/elecplay.html

EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!

 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
看着像是黑金的开发板啊
此帖出自Altera SoC论坛

点评

嗯对  详情 回复 发表于 2016-7-14 11:32
 
 
 

回复

356

帖子

0

TA的资源

一粒金砂(中级)

4
 
hljjxzhla 发表于 2016-7-14 11:24
看着像是黑金的开发板啊

嗯对
此帖出自Altera SoC论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

5
 
学习
此帖出自Altera SoC论坛
 
 
 

回复

2721

帖子

0

TA的资源

纯净的硅(中级)

6
 
hei jin de
此帖出自Altera SoC论坛
 
 
 

回复

1950

帖子

4

TA的资源

版主

7
 
坚持的ihalin,加油

这个最好这样写,生产性高
a = 0;b = 0; c = 0;  #200;

也可以改成 用读文件,来生成向量激励
此帖出自Altera SoC论坛

点评

嗯嗯  详情 回复 发表于 2016-7-15 09:07
个人签名MicroPython中文社区https://micropython.org.cn/forum/  
 
 
 

回复

356

帖子

0

TA的资源

一粒金砂(中级)

8
 
5525 发表于 2016-7-14 21:33
坚持的ihalin,加油

这个最好这样写,生产性高
a = 0;b = 0; c = 0;  #200;

也可以改成 用 ...

嗯嗯
此帖出自Altera SoC论坛
 
 
 

回复

25

帖子

0

TA的资源

一粒金砂(中级)

9
 
支持一下,虽然看不懂。
此帖出自Altera SoC论坛
 
 
 

回复

1412

帖子

15

TA的资源

版主

10
 
此帖出自Altera SoC论坛
个人签名https://bbs.eeworld.com.cn/thread-471646-1-1.html
欢迎加入我的团队
 
 
 

回复

6423

帖子

16

TA的资源

版主

11
 
给楼主点个赞
此帖出自Altera SoC论坛
个人签名training
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

12
 
我也是这个开发板,做得挺不错的!
此帖出自Altera SoC论坛
 
 
 

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

随便看看
查找数据手册?

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
快速回复 返回顶部 返回列表