From 570b99fc1f598c6c3804034b4996be379aacdd49 Mon Sep 17 00:00:00 2001 From: Bernhard Urban Date: Sat, 10 Apr 2010 20:45:28 +0200 Subject: [PATCH] calc: fake top entity fuer synthese und ACHTUNG: die quartus version fuer linux scheint unbrauchbar zu sein. der build prozess bricht mit der meldung: "Error: Current module quartus_map ended unexpectedly" ab. das passiert leider auch mit dem demo projekt der lva leitung, duerfte also nicht am code liegen... in der windows version geht beides problemlos :/ d.h. ich passe mal das skript fuer die windows version... wird wohl nix anderes uebrig bleiben als es nativ oder virtuell laufen zu lassen :( ABER: da ich nicht viel ueber den fehler per google gefunden habe, koennte es auch ein problem mit meinem lokalen system sein. uebrigens: die linux version im tilab ist eine kostenpflichtige version (mit der es dann wahrscheinlich auch funktionieren wird). --- src/Makefile | 9 ++++++++- src/calc.vhd | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 src/calc.vhd diff --git a/src/Makefile b/src/Makefile index 656c6f7..da86f57 100644 --- a/src/Makefile +++ b/src/Makefile @@ -28,10 +28,17 @@ $(D_BEHSIM)/$(WORK)/%/_primary.dat: %.vhd @cd $(D_BEHSIM); \ vcom -work $(WORK) $(MPWD)/$< -startms: behsim +modelsim: behsim @cd $(D_BEHSIM); \ vsim "work.alu_tb(sim)" -f /dev/null -do $(MPWD)/alu.do +quartus: + @echo "Die angebotene (free) Quartus II Version funktioniert leider nicht. (Build endet mit einem Error, auch mit dem debouncing-bsp der LVA)." + @echo "Befehl um es trotzdem zu probieren:" + @echo "$$ unset LS_COLORS #falls gesetzt..." + @echo -n "$$ quartus # bin verzeichnis von quartus muss sich in "; echo -n "$$"; echo "PATH befinden" + @echo "in windows: TODO" + .PHONY: clean clean: rm -Rf $(D_BEHSIM) diff --git a/src/calc.vhd b/src/calc.vhd new file mode 100644 index 0000000..c17199c --- /dev/null +++ b/src/calc.vhd @@ -0,0 +1,57 @@ +-- TODO: dient im moment nur als "fake top entity" +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +use work.gen_pkg.all; + +entity calc is + port + ( + sys_clk : in std_logic; + sys_res_n : in std_logic + ); +end entity calc; + +architecture top of calc is + component alu is + port + ( + sys_clk : in std_logic; + sys_res_n : in std_logic; + opcode : in alu_ops; + op1 : in csigned; + op2 : in csigned; + op3 : out csigned; + do_calc : in std_logic; + calc_done : out std_logic + ); + end component alu; + + signal do_calc, calc_done : std_logic; + signal opcode : alu_ops; + signal op1, op2, op3 : csigned; +begin + aluc : alu + port map + ( + sys_clk => sys_clk, + sys_res_n => sys_res_n, + do_calc => do_calc, + calc_done => calc_done, + op1 => op1, + op2 => op2, + op3 => op3, + opcode => opcode + ); + + process + begin + op1 <= op3; + opcode <= DIV; + op2 <= to_signed(2,CBITS); + + do_calc <= calc_done; + wait until sys_clk = '1'; + end process; +end architecture top; + -- 2.25.1