3-8译码器

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

使用Quartus编写一个VHDL程序,3-8译码器

一、新建工程

新建工程:

新建VHDL文件:
在这里插入图片描述
新建完我们的VHDL文件之后,我们开始编写我们的代码了,有完整注释,看下图



module my_3_8( a , b , c , out);   //定义你的输入输出

	input a ;//输入端口 
	input b ;
	input c ;
	
	output reg [7:0]out ;    //定义输出位宽,高位在前

	//逻辑设计
	always@(a, b, c)  // 敏感信号,发生变化,档期中一个信号发生变化的时候,就会执行always块
	  
	   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;
			default : out = 1111_11111;
		  endcase
		end
endmodule

以上代码是没有问题的,下面把写代码时出现的问题列举出来,记录一下。
错误 1:报错如下:
在这里插入图片描述
原因是因为语法错误:
在这里插入图片描述
always后面多了一个分号,写习惯了,啊哈哈

错误2:去掉之后还是显示还是有错误,如下,原因是我们的输出应该都是寄存器,所以我们再写的时候需要把他们都定义为寄存器。
在这里插入图片描述
在这里插入图片描述
最后没有报错,编译需要一点点时间,耐心等待。

编译完成报告分析:
在这里插入图片描述
注意我在这里使用的是Quartus 17.0.1版本,各个版本的错误分析报告可能各有不同。

程序编写完成,但是有没有问题需要编写一个测试文件仿真看一下。
接下来是我们的逻辑分析的代码编写

二、 仿真

新建的与我们之前的是一样的都是我们的 VHDL文件,我们的文件后缀建议修改为tb结尾 ,表示这是一个测试文件,为我们的ModelSim编写的。举例: my3-8tb . v
文件保存到我们的TestBench文件夹下面,表示是我们测试的代码
具体如下:在这里插入图片描述
编译没有问题,下面进行我们的仿真,需要把我们的仿真信号文件用MoudlSim软件仿真出来。在哪进行呢,看下图:
在这里插入图片描述
ok完成之后,我们可以在Tool里面直接启动ModelSim来访真了,这里注意一点:我安装完成之后这里还是显示无法打开,然后我没办法,只能是单独打开ModelSim软件进行调试仿真,网上听说的。
在这里插入图片描述
没办法打开怎么办呢,这里给出其他方案打开它
按Window键 -> 输入ModelSim
在这里插入图片描述
回车打开就行,第一次打开需要新建工程。
在这里插入图片描述
并且把它保存到你需要的位置。
2、创建完成之后弹出小窗,选择Add Existing File 添加之前在Quartus中编写的tb和vhdl文件。
在这里插入图片描述

需要添加的是同时我们的tb文件和我们代码的文件(注意是两个文件)。
如果两个文件在不同的文件夹下,可以分两次来添加。
添加完成之后有两个文件,但是中间有两个❓,表示没有编译
在这里插入图片描述
点击Compile -> All ,编译全部
在这里插入图片描述
没有错误的两个特征:
(1)❓变成 绿色对勾
在这里插入图片描述
(2)两个编译,没有错误
在这里插入图片描述
点击下方标签栏的Library,里面有一个我们新建的库叫work,,啊 我没新建过这个库啊,注意在之前创建工程的时候会选择默认创建一个work的库。在这里
在这里插入图片描述
Default Library Name如果你是第一次使用的话他就是work,会直接创建的,我们跳到下方选项栏,打开work
在这里插入图片描述
依次点击之后我们的仿真界面就已经出来了,接下来开始仿真:
在这里插入图片描述
波形在右方就完整的显示出来了,因为我们在一次信号之后选择了关闭激励,所以只有一次的波形。

好了如果你有问题,或者建议欢:

  • 8
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值