Convert VHDL to Verilog entity reg_file is port(clk_reg: in std_logic; wr_reg: i
ID: 1841372 • Letter: C
Question
Convert VHDL to Verilog
entity reg_file is
port(clk_reg: in std_logic;
wr_reg: in std_logic;
addr_reg: in std_logic_vector(2 downto 0);
input_reg: in std_logic_vector(7 downto 0);
output_reg: out std_logic_vector(7 downto 0));
end reg_file;
architecture reg_file of reg_file is
type mem is array (0 to 7) of std_logic_vector(7 downto 0);
signal d:mem;
begin
process(clk_reg,wr_reg,addr_reg)
begin
if(clk_reg'event and clk_reg = '1') then
if(wr_reg='1') then
if(addr_reg="000") then
d(0)<=input_reg;
output_reg<=input_reg;
elsif(addr_reg="001") then
d(1)<=input_reg;
output_reg<=input_reg;
elsif(addr_reg="010") then
d(2)<=input_reg;
output_reg<=input_reg;
elsif(addr_reg="011") then
d(3)<=input_reg;
output_reg<=input_reg;
elsif(addr_reg="100") then
d(4)<=input_reg;
output_reg<=input_reg;
elsif(addr_reg="101") then
d(5)<=input_reg;
output_reg<=input_reg;
elsif(addr_reg="110") then
d(6)<=input_reg;
output_reg<=input_reg;
elsif(addr_reg="111") then
d(7)<=input_reg;
output_reg<=input_reg;
end if;
else
if(addr_reg="000") then
output_reg<=d(0);
elsif(addr_reg="001") then
output_reg<=d(1);
elsif(addr_reg="010") then
output_reg<=d(2);
elsif(addr_reg="011") then
output_reg<=d(3);
elsif(addr_reg="100") then
output_reg<=d(4);
elsif(addr_reg="101") then
output_reg<=d(5);
elsif(addr_reg="110") then
output_reg<=d(6);
elsif(addr_reg="111") then
output_reg<=d(7);
end if;
end if;
end if;
end process;
end reg_file;
Convert the VHDL code to Verilog
Explanation / Answer
module reg_file(clk_reg,wr_reg,addr_reg,input_reg,output_reg);
input clk_reg,wr_reg;
input [2:0]add_reg;
input[7:0]input_reg;
output[7:0]output_reg;
begin
process(clk_reg,wr_reg,addr_reg)
always @(wr_eg,clk_reg=>1)
3'000=d(0);
3'001=d(1);
3'010=d(2);
3'011=d(3);
3'100=d(4);
3'101=d(5);
3'110=d(6);
3'111=d(7);
end process;
always @(add_reg);
3'000=d(0);
3'001=d(1);
3'010=d(2);
3'011=d(3);
3'100=d(4);
3'101=d(5);
3'110=d(6);
3'111=d(7);
end module