aboutsummaryrefslogtreecommitdiffstats
path: root/backends/verilog/verilog_backend.cc
Commit message (Collapse)AuthorAgeFilesLines
* Cleanups and fixed in write_verilog regarding reg initClifford Wolf2016-11-161-15/+61
|
* Added hex constant support to write_verilogClifford Wolf2016-11-031-4/+62
|
* Adde "write_verilog -renameprefix -v"Clifford Wolf2016-11-011-5/+23
|
* Bugfix in partial mem write handling in verilog back-endClifford Wolf2016-08-201-42/+26
|
* Added missing support for mem read enable ports to verilog back-endClifford Wolf2016-08-181-6/+14
|
* Fixed upto handling in verilog back-endClifford Wolf2016-08-151-0/+3
|
* Added "write_verilog -defparam"Clifford Wolf2016-07-301-2/+21
|
* Added "write_verilog -nodec -nostr"Clifford Wolf2016-07-301-4/+27
|
* Added "yosys -D" featureClifford Wolf2016-04-211-1/+1
|
* Bugfix in write_verilog for RTLIL processesClifford Wolf2016-03-141-9/+20
|
* Bugfixes in writing of memories as VerilogClifford Wolf2015-09-251-7/+8
|
* Another block of spelling fixesLarry Doolittle2015-08-141-2/+2
| | | | Smaller this time
* Re-created command-reference-manual.tex, copied some doc fixes to online helpClifford Wolf2015-08-141-3/+3
|
* Spell check (by Larry Doolittle)Clifford Wolf2015-08-141-1/+1
|
* Fixed trailing whitespacesClifford Wolf2015-07-021-4/+4
|
* $mem cell in verilog backend : grouped writes by clockluke whittlesey2015-06-081-54/+108
|
* Bug fix in $mem verilog backend + changed tests/bram flow of make test.luke whittlesey2015-06-041-14/+16
|
* Some fixes for $mem in verilog back-endClifford Wolf2015-05-201-19/+23
|
* Merge pull request #63 from wluker/verilog-backend-memClifford Wolf2015-05-111-1/+2
|\ | | | | Fixed bug in $mem cell verilog code generation.
| * Fixed bug in $mem cell verilog code generation.luke whittlesey2015-05-111-11/+12
| |
* | Disabled broken $mem support in verilog backendClifford Wolf2015-05-101-11/+11
|/
* Made changes recommended by Clifford Wolf ...luke whittlesey2015-05-101-22/+11
| | | | | | Removed bit_check_equal(), used RTLIL::SigBit for individual bits, used dict<> instead of std::map, and used RTLIL::SigSpec instead of std::vector.
* Verilog backend for $mem cells should now be able to handle differentluke whittlesey2015-05-081-50/+105
| | | | write-enable bits and RD_TRANSPARENT parameter settings.
* Added support for $mem cells in the verilog backend.luke whittlesey2015-05-071-1/+120
|
* Minor fixes in handling of "init" attributeClifford Wolf2015-04-091-7/+7
|
* Added "init" attribute support to verilog backendClifford Wolf2015-04-041-0/+5
|
* Added Verilog backend $dffsr supportClifford Wolf2015-03-181-1/+51
|
* Fixed "write_verilog -attr2comment" handling of "*/" in stringsClifford Wolf2015-02-131-2/+4
|
* Added dict/pool.sort()Clifford Wolf2015-01-241-0/+2
|
* Cosmetic changes in verilog output formatClifford Wolf2015-01-021-5/+10
|
* Replaced std::unordered_map as implementation for Yosys::dictClifford Wolf2014-12-261-25/+25
|
* Added Yosys::{dict,nodict,vector} container typesClifford Wolf2014-12-261-1/+1
|
* Added $dffe support to write_verilogClifford Wolf2014-12-201-3/+14
|
* Fixed generation of temp names in verilog backendClifford Wolf2014-11-071-4/+5
|
* Renamed SIZE() to GetSize() because of name collision on Win32Clifford Wolf2014-10-101-1/+1
|
* namespace YosysClifford Wolf2014-09-271-4/+3
|
* Various bug fixes (related to $macc model testing)Clifford Wolf2014-09-061-1/+2
|
* Removed $bu0 cell typeClifford Wolf2014-09-041-1/+0
|
* Using $pos models for $bu0Clifford Wolf2014-09-031-16/+1
|
* Changed backend-api from FILE to std::ostreamClifford Wolf2014-08-231-230/+230
|
* Fixed AOI/OAI expr handling in verilog backendClifford Wolf2014-08-161-4/+4
|
* Added additional gate types: $_NAND_ $_NOR_ $_XNOR_ $_AOI3_ $_OAI3_ $_AOI4_ ↵Clifford Wolf2014-08-161-4/+40
| | | | $_OAI4_
* Renamed $_INV_ cell type to $_NOT_Clifford Wolf2014-08-151-1/+1
|
* Refactoring of CellType classClifford Wolf2014-08-141-10/+28
|
* Be more conservative with printing decimal numbers in verilog backendClifford Wolf2014-08-021-2/+3
|
* Improved verilog output for ordinary $mux cellsClifford Wolf2014-08-021-3/+19
|
* More cleanups related to RTLIL::IdString usageClifford Wolf2014-08-021-6/+6
|
* Renamed port access function on RTLIL::Cell, added param access functionsClifford Wolf2014-07-311-40/+40
|
* Added support for "upto" wires to Verilog front- and back-endClifford Wolf2014-07-281-9/+22
|
* Using log_assert() instead of assert()Clifford Wolf2014-07-281-3/+2
|
$(CONFIG_DEBUG), -g3) $(EXTRA_OPTIMIZATION) TARGET_CXXFLAGS = $(TARGET_CFLAGS) TARGET_ASFLAGS_DEFAULT = $(TARGET_CFLAGS) TARGET_ASFLAGS = $(TARGET_ASFLAGS_DEFAULT) TARGET_CPPFLAGS:=-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include TARGET_LDFLAGS:=-L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib ifneq ($(CONFIG_EXTERNAL_TOOLCHAIN),) LIBGCC_S_PATH=$(realpath $(wildcard $(call qstrip,$(CONFIG_LIBGCC_ROOT_DIR))/$(call qstrip,$(CONFIG_LIBGCC_FILE_SPEC)))) LIBGCC_S=$(if $(LIBGCC_S_PATH),-L$(dir $(LIBGCC_S_PATH)) -lgcc_s) LIBGCC_A=$(realpath $(lastword $(wildcard $(dir $(LIBGCC_S_PATH))/gcc/*/*/libgcc.a))) else LIBGCC_A=$(lastword $(wildcard $(TOOLCHAIN_DIR)/lib/gcc/*/*/libgcc.a)) LIBGCC_S=$(if $(wildcard $(TOOLCHAIN_DIR)/lib/libgcc_s.so),-L$(TOOLCHAIN_DIR)/lib -lgcc_s,$(LIBGCC_A)) endif LIBRPC=-lrpc LIBRPC_DEPENDS=+librpc ifeq ($(CONFIG_ARCH_64BIT),y) LIB_SUFFIX:=64 endif ifndef DUMP ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),) -include $(TOOLCHAIN_DIR)/info.mk export GCC_HONOUR_COPTS:=0 TARGET_CROSS:=$(if $(TARGET_CROSS),$(TARGET_CROSS),$(OPTIMIZE_FOR_CPU)-openwrt-linux$(if $(TARGET_SUFFIX),-$(TARGET_SUFFIX))-) TARGET_CFLAGS+= -fhonour-copts $(if $(CONFIG_GCC_VERSION_4_4)$(CONFIG_GCC_VERSION_4_5),,-Wno-error=unused-but-set-variable) TARGET_CPPFLAGS+= -I$(TOOLCHAIN_DIR)/usr/include -I$(TOOLCHAIN_DIR)/include TARGET_LDFLAGS+= -L$(TOOLCHAIN_DIR)/usr/lib -L$(TOOLCHAIN_DIR)/lib TARGET_PATH:=$(TOOLCHAIN_DIR)/bin:$(TARGET_PATH) else ifeq ($(CONFIG_NATIVE_TOOLCHAIN),) TARGET_CROSS:=$(call qstrip,$(CONFIG_TOOLCHAIN_PREFIX)) TOOLCHAIN_ROOT_DIR:=$(call qstrip,$(CONFIG_TOOLCHAIN_ROOT)) TOOLCHAIN_BIN_DIRS:=$(patsubst ./%,$(TOOLCHAIN_ROOT_DIR)/%,$(call qstrip,$(CONFIG_TOOLCHAIN_BIN_PATH))) TOOLCHAIN_INC_DIRS:=$(patsubst ./%,$(TOOLCHAIN_ROOT_DIR)/%,$(call qstrip,$(CONFIG_TOOLCHAIN_INC_PATH))) TOOLCHAIN_LIB_DIRS:=$(patsubst ./%,$(TOOLCHAIN_ROOT_DIR)/%,$(call qstrip,$(CONFIG_TOOLCHAIN_LIB_PATH))) ifneq ($(TOOLCHAIN_BIN_DIRS),) TARGET_PATH:=$(subst $(space),:,$(TOOLCHAIN_BIN_DIRS)):$(TARGET_PATH) endif ifneq ($(TOOLCHAIN_INC_DIRS),) TARGET_CPPFLAGS+= $(patsubst %,-I%,$(TOOLCHAIN_INC_DIRS)) endif ifneq ($(TOOLCHAIN_LIB_DIRS),) TARGET_LDFLAGS+= $(patsubst %,-L%,$(TOOLCHAIN_LIB_DIRS)) endif TARGET_PATH:=$(TOOLCHAIN_DIR)/bin:$(TARGET_PATH) endif endif endif TARGET_PATH_PKG:=$(STAGING_DIR)/host/bin:$(TARGET_PATH) ifeq ($(CONFIG_SOFT_FLOAT),y) SOFT_FLOAT_CONFIG_OPTION:=--with-float=soft ifeq ($(CONFIG_arm),y) TARGET_CFLAGS+= -mfloat-abi=soft else TARGET_CFLAGS+= -msoft-float endif else SOFT_FLOAT_CONFIG_OPTION:= ifeq ($(CONFIG_arm),y) TARGET_CFLAGS+= -mfloat-abi=hard endif endif export PATH:=$(TARGET_PATH) export STAGING_DIR export SH_FUNC:=. $(INCLUDE_DIR)/shell.sh; PKG_CONFIG:=$(STAGING_DIR_HOST)/bin/pkg-config export PKG_CONFIG HOSTCC:=gcc HOSTCXX:=g++ HOST_CPPFLAGS:=-I$(STAGING_DIR_HOST)/include HOST_CFLAGS:=-O2 $(HOST_CPPFLAGS) HOST_LDFLAGS:=-L$(STAGING_DIR_HOST)/lib TARGET_CC:=$(TARGET_CROSS)gcc TARGET_AR:=$(TARGET_CROSS)ar TARGET_RANLIB:=$(TARGET_CROSS)ranlib TARGET_CXX:=$(TARGET_CROSS)g++ KPATCH:=$(SCRIPT_DIR)/patch-kernel.sh SED:=$(STAGING_DIR_HOST)/bin/sed -i -e CP:=cp -fpR LN:=ln -sf XARGS:=xargs -r INSTALL_BIN:=install -m0755 INSTALL_DIR:=install -d -m0755 INSTALL_DATA:=install -m0644 INSTALL_CONF:=install -m0600 TARGET_CC_NOCACHE:=$(TARGET_CC) TARGET_CXX_NOCACHE:=$(TARGET_CXX) HOSTCC_NOCACHE:=$(HOSTCC) HOSTCXX_NOCACHE:=$(HOSTCXX) export TARGET_CC_NOCACHE export TARGET_CXX_NOCACHE export HOSTCC_NOCACHE ifneq ($(CONFIG_CCACHE),) TARGET_CC:= ccache_cc TARGET_CXX:= ccache_cxx HOSTCC:= ccache $(HOSTCC) HOSTCXX:= ccache $(HOSTCXX) endif TARGET_CONFIGURE_OPTS = \ AR=$(TARGET_CROSS)ar \ AS="$(TARGET_CC) -c $(TARGET_ASFLAGS)" \ LD=$(TARGET_CROSS)ld \ NM=$(TARGET_CROSS)nm \ CC="$(TARGET_CC)" \ GCC="$(TARGET_CC)" \ CXX="$(TARGET_CXX)" \ RANLIB=$(TARGET_CROSS)ranlib \ STRIP=$(TARGET_CROSS)strip \ OBJCOPY=$(TARGET_CROSS)objcopy \ OBJDUMP=$(TARGET_CROSS)objdump \ SIZE=$(TARGET_CROSS)size # strip an entire directory ifneq ($(CONFIG_NO_STRIP),) RSTRIP:=: STRIP:=: else ifneq ($(CONFIG_USE_STRIP),) STRIP:=$(TARGET_CROSS)strip $(call qstrip,$(CONFIG_STRIP_ARGS)) else ifneq ($(CONFIG_USE_SSTRIP),) STRIP:=$(STAGING_DIR_HOST)/bin/sstrip endif endif RSTRIP:= \ export CROSS="$(TARGET_CROSS)" \ $(if $(CONFIG_KERNEL_KALLSYMS),NO_RENAME=1) \ $(if $(CONFIG_KERNEL_PROFILING),KEEP_SYMBOLS=1); \ NM="$(TARGET_CROSS)nm" \ STRIP="$(STRIP)" \ STRIP_KMOD="$(SCRIPT_DIR)/strip-kmod.sh" \ $(SCRIPT_DIR)/rstrip.sh endif ifeq ($(CONFIG_IPV6),y) DISABLE_IPV6:= else DISABLE_IPV6:=--disable-ipv6 endif TAR_OPTIONS:=-xf - ifeq ($(CONFIG_BUILD_LOG),y) BUILD_LOG:=1 endif define shvar V_$(subst .,_,$(subst -,_,$(subst /,_,$(1)))) endef define shexport $(call shvar,$(1))=$$(call $(1)) export $(call shvar,$(1)) endef define include_mk $(eval -include $(if $(DUMP),,$(STAGING_DIR)/mk/$(strip $(1)))) endef # Execute commands under flock # $(1) => The shell expression. # $(2) => The lock name. If not given, the global lock will be used. define locked SHELL= \ $(STAGING_DIR_HOST)/bin/flock \ $(TMP_DIR)/.$(if $(2),$(strip $(2)),global).flock \ -c '$(subst ','\'',$(1))' endef # Recursively copy paths into another directory, purge dangling # symlinks before. # $(1) => File glob expression # $(2) => Destination directory define file_copy for src_dir in $(sort $(foreach d,$(wildcard $(1)),$(dir $(d)))); do \ ( cd $$src_dir; find -type f -or -type d ) | \ ( cd $(2); while :; do \ read FILE; \ [ -z "$$FILE" ] && break; \ [ -L "$$FILE" ] || continue; \ echo "Removing symlink $(2)/$$FILE"; \ rm -f "$$FILE"; \ done; ); \ done; \ $(CP) $(1) $(2) endef # file extension ext=$(word $(words $(subst ., ,$(1))),$(subst ., ,$(1))) all: FORCE: ; .PHONY: FORCE val.%: @$(if $(filter undefined,$(origin $*)),\ echo "$* undefined" >&2, \ echo '$(subst ','"'"',$($*))' \ ) var.%: @$(if $(filter undefined,$(origin $*)),\ echo "$* undefined" >&2, \ echo "$*='"'$(subst ','"'\"'\"'"',$($*))'"'" \ ) endif #__rules_inc