module decoder38(
input [2:0]code,
output reg[7:0]result
)
always@(*)
begin
case(code)
3'b000: result = 8'h01
3'b001: result = 8'h02
3'b010: result = 8'h04
3'b011: result = 8'h08
3'b100: result = 8'h10
3'b101: result = 8'h20
3'b110: result = 8'h40
3'b111: result = 8'h80
endcase
end
endmodule
module decoder38(
input [2:0]code,
output reg[7:0]result
)
always@(*)
begin
if(code[2])
if(code[1])
if(code[0])
result = 8'h80
else
result = 8'h40
else
if(code[0])
result = 8'h20
else
result = 8'h10
else
else
if(code[1])
if(code[0])
result = 8'h08
else
result = 8'h04
else
if(code[0])
result = 8'h02
else
result = 8'h01
else
end
endmodule
工作原理
使用Verilog描述硬件的基本设计单元是模块(module)。构建复杂的电子电路,主要是通过模块的相互连接调用来实现的。模块被包含在关键字module、endmodule之内。实际的电路元件。Verilog中的模块类似C语言中的函数,它能够提供输入、输出端口,可以实例调用其他模块,也可以被其他模块实例调用。模块中可以包括组合逻辑部分、过程时序部分。
以上内容参考:百度百科-Verilog HDL
姓名:杨汉雄
学号:19011210569
【嵌牛导读】Verilog HDL是一种硬件描述语言,以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。 Verilog HDL和VHDL是世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。前者由Gateway Design Automation公司开发。两种HDL均为IEEE标准。
【嵌牛正文】
3-8译码器的输入是3个脚,输出是8个脚。用高低电平来表示输入和输出。输入是二进制。3只脚也就是3位二进制数。输入可以3位二进制数。3位二进制最大是111 也就是8。输出是8个脚,表示10进制。是根据输入的二进制数来输出。如果输入是101 那么就是第5只脚高电平,表示二进制数是5。 其实3-8译码器的功能就是把输入的3位2进制数翻译成10进制的输出。
本次实验使用verilog语言实现3-8译码器的功能并实现WVF的功能性仿真。
在quartusII中创建一个波形图文件(WVF),仿真器参数设定:将仿真器的仿真结束时间设定为 1s,仿真时间步长设定为 10ms。设置信号类型:将输入信号 a 设置为二进制类型,设置其余的输入信号 b、c、en 和输出信号 y 都为二进制类型。设定输入信号:设定输入信号 a 为 10ms 周期的时钟信号,设定信号 b 为 20ms 周期的时钟信号,信号 c 为 40ms 周期的时钟信号,在输入信号 en 上设置一段高电平信号。
可以看到当使能端EN拉高时,输出无效(被置成高电平),当EN为低时实现正常的译码输出。
1,新建工程2,编写testbench,设置时钟、激励
3,编译文件,可用命令 vlog filename.v
4,仿真,可用命令vsim work.filename
5,添加波形信号
6,run
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)