用Verilog语言设计一个3-8译码器~(要求分别用case语句和if_else语句各写一份~)

用Verilog语言设计一个3-8译码器~(要求分别用case语句和if_else语句各写一份~),第1张

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

这个是带使能端的3-8译码器,输出低电平有效!你可以参考一下!

你可以留下联系方式,我雀歼把语言顷帆冲与仿真发给你!

library IEEE

use IEEE.std_logic_1164.all

entity ls138 is

port (

A : in std_logic_vector (2 downto 0)

S1,S2,S3 : in std_logic

Y : out std_logic_vector (7 downto 0)

)

end entity

architecture ls138_arch of ls138 is

signal s : std_logic_vector(2 downto 0)

begin

S <= S1&S2&S3

process(A, S)

begin

Y <= (others =>'1')

if S="100" then

case A is

when "000" =>Y <= "11111110"-- 0

when "001" =>Y <= "11111101"-- 1

when "010" =>Y <= "11111011"-- 2

when "011" =>Y <= "11110111"-- 3

when "100" =>Y <= "轿铅11101111"-- 4

when "101" =>Y <= "11011111"-- 5

when "110" =>Y <= "10111111"-- 6

when "111" =>Y <= "01111111"-- 7

when others =>NULL

end case

end if

end process

end architecture


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8216463.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存