区别与verilog HDL代码,主要留意以下内容:

1,语言本身支持的特征和可综合的代码是两回事,不是所有verilog语言都可以转化为硬件的。

2,testbench作为top module,不需要任何输入和输出。

3,在testbench module中将要测试的模块例化为dut(名字可以任起),input要是reg类型,output要是wire类型,inout是reg。

4,initial和always是同时执行的,只是initial只执行一次。

一.38译码器框图

二、真值表

创建工程:

按照真值表定义编写Verilog程序:

module my_38(a,b,c,out);

input a;

input b;

input c;

output reg [7:0]out;    //定义一个8位的位宽.只要是在always块中进行赋值的都要定义为reg类型。

always@(a,b,c)

begin

case ({a,b,c})             //{}位为位拼接,将信号拼接成一个三位的信号

3'b000: out=8'b0000_0001;

3'b001:     out=8'b0000_0010;

3'b010:     out=8'b0000_0100;

3'b011:     out=8'b0000_1000;

3'b100:     out=8'b0001_0000;

3'b101:     out=8'b0010_0000;

3'b110:     out=8'b0100_0000;

3'b111:     out=8'b1000_0000;

endcase

end

endmodule

编写testbench测试文件:

`timescale 1ns/1ns
module
my38_tb;
reg a,b,c;
wire [7:0]
out my3_8 u1(

.a(a),
.b(b),
.c(c),
.out(out));  //顶层例化
initial begin
a=0;b=0;c=0;
#200;
a=0;b=0;c=1;
#200;
a=0;b=1;c=0;
#200;
a=0;b=1;c=1;
#200;
a=1;b=0;c=0;
#200;
a=1;b=0;c=1;
#200;
a=1;b=1;c=0;
#200;
a=1;b=1;c=1;
#200;
$stop;
end 
endmodule

将testbench文件链接到仿真工具

分配引脚

点击全编译按钮后,上电链接开发板,点击programmer,将系统生成的.sof文件烧写到开发板中。

本次实验中,testbench是用initial块给信号赋初值,initial块执行一次,

首先在写testbench时,应注意名称要和自己待仿真的工程名称要对应,比如自己的待仿真文件名称叫my_38,那么对于teshbench的名称则取一个叫my_38_tb,在书写testbench module name则取名叫my_38_tb,这样对于自己有好处,以免自己找不到自己写的文件。

最新文章

  1. CSS的5种常用的垂直居中的方法
  2. Java hashCode() 和 equals()的若干问题解答
  3. Cocos2d-x数据存储
  4. poi excel export 乱码
  5. Java 日志管理最佳实践
  6. Xcode 创建静态库和动态库
  7. 一个layer可以跟着画完的线移动ios程序 好玩啊。
  8. 【MS SQL】把多个数据库合并为一个新的数据库
  9. hibernate 基本配置文件及CRDU的操作和基本的HQL查询
  10. 课程作业——Python基础之使用turtle库画出红旗
  11. OneNET麒麟座应用开发之八:采集大气压力等环境参数
  12. 上传文件Base64格式(React)
  13. Centos安装Oracle数据库文本记录
  14. [翻译] VENCalculatorInputView
  15. kali更新后窗口不能适应屏幕的解决方案
  16. R语言进阶之4:数据整形(reshape)
  17. 【SSH网上商城项目实战11】查询和删除商品功能的实现
  18. HDU2486_A simple stone game
  19. 【前端】javaScript 常用技巧总结
  20. <转>巧用notepad++ 批量转换ansi 和 utf8

热门文章

  1. 剑指offer-面试题7-重建二叉树-二叉树
  2. PAT (Advanced Level) Practice 1054 The Dominant Color (20 分)
  3. win10专业工作站版密钥|win10专业工作站版key|win10专业工作站版激活码
  4. C#接口与抽象类学习笔记
  5. MATLAB用“fitgmdist”函数拟合高斯混合模型(一维数据)
  6. b站德云社相声合集
  7. c#后端 小程序上传图片
  8. Mysql-从库只读设置
  9. nginx中部署前端,后端打成jar包运行
  10. 使用VSCode创建简单的Razor Webapp--2.添加模型