From 960a110653681f295a63c598646ae0523fb6d8fd Mon Sep 17 00:00:00 2001 From: ambikeshwar Date: Wed, 15 Jul 2015 04:41:45 +0530 Subject: ghdlserver.c modified foe multiple instance --- src/ghdlserver/ghdlserver.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/ghdlserver/ghdlserver.c b/src/ghdlserver/ghdlserver.c index 68c9941..603f925 100644 --- a/src/ghdlserver/ghdlserver.c +++ b/src/ghdlserver/ghdlserver.c @@ -369,9 +369,9 @@ void set_non_blocking(int sock_id) } -void Vhpi_Initialize() +void Vhpi_Initialize(int sock_port) { - + DEFAULT_SERVER_PORT = sock_port; /*Taking time info for log*/ time_t systime; systime = time(NULL); -- cgit From 4e86b4d23080b2f6b3ff6b7a8d0de7259b0b515d Mon Sep 17 00:00:00 2001 From: ambikeshwar Date: Wed, 15 Jul 2015 04:43:18 +0530 Subject: ghdlserver.h modified for multiple instance --- src/ghdlserver/ghdlserver.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/ghdlserver/ghdlserver.h b/src/ghdlserver/ghdlserver.h index 07cccb6..ad82385 100644 --- a/src/ghdlserver/ghdlserver.h +++ b/src/ghdlserver/ghdlserver.h @@ -13,7 +13,6 @@ #define MAX_BUF_SIZE 4096 //Defualt port number -#define DEFAULT_SERVER_PORT 5000 //unlikely to have more than 16 active //threads talking to the TB? @@ -22,6 +21,8 @@ +int DEFAULT_SERVER_PORT; + //Payload Handling int extract_payload(char* receive_buffer,char* payload, int max_n); //void print_payload(FILE* log_file,char* send_buffer, int wlength, int nwords); @@ -47,7 +48,7 @@ void set_non_blocking(int sock_id); void Data_Send(int sockid); //Vhpi Function -void Vhpi_Initialize(); +void Vhpi_Initialize(int sock_port); void Vhpi_Close(); void Vhpi_Listen(); void Vhpi_Send(); -- cgit From 8e9305f8c9ac26ef004743ba68654b31e74ed2d7 Mon Sep 17 00:00:00 2001 From: ambikeshwar Date: Thu, 13 Aug 2015 13:21:20 +0530 Subject: added sock_port variable with instance id --- src/model_generation.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/model_generation.py b/src/model_generation.py index c5350c0..4e377d1 100755 --- a/src/model_generation.py +++ b/src/model_generation.py @@ -170,7 +170,8 @@ var_section=''' char *key_iter; struct hostent *host; struct sockaddr_in server_addr; - double time_limit = PARAM(stop_time); + double time_limit = PARAM(stop_time); + int sock_port = 5000+PARAM(instance_id); ''' temp_input_var=[] for item in input_port: -- cgit From 702926504b4749ae26975393fde561f03eb8caf3 Mon Sep 17 00:00:00 2001 From: ambikeshwar Date: Thu, 13 Aug 2015 13:29:07 +0530 Subject: changes done to give client server port number in netlist --- src/model_generation.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/model_generation.py b/src/model_generation.py index 4e377d1..38bec4d 100755 --- a/src/model_generation.py +++ b/src/model_generation.py @@ -248,7 +248,7 @@ create_socket=''' // memset(&server_addr, 0, sizeof(server_addr)); server_addr.sin_family = AF_INET; - server_addr.sin_port = htons(5000); + server_addr.sin_port = htons(sock_port); server_addr.sin_addr = *((struct in_addr *)host->h_addr); bzero(&(server_addr.sin_zero),8); @@ -463,7 +463,8 @@ for item in cm_event_get_ptr: cfunc.write("\n") cfunc.write(systime_info) cfunc.write("\n") -cfunc.write('\t\tsystem("'+home+'/ngspice-26/src/xspice/icm/ghdl/'+fname.split('.')[0]+'/DUTghdl/start_server.sh &");\n') +cfunc.write('\t\tsnprintf(command,1024,"'+home+'/ngspice-26/src/xspice/icm/ghdl/'+fname.split('.')[0]+'/DUTghdl/start_server.sh %d &",sock_port);\n') +cfunc.write('\t\tsystem(command)') cfunc.write("\t}") cfunc.write("\n") cfunc.write("\telse\n\t{\n") -- cgit From 0b18163a841f1c5c985cdfb36ad1c79e662fee89 Mon Sep 17 00:00:00 2001 From: ambikeshwar Date: Thu, 13 Aug 2015 13:32:10 +0530 Subject: changes done in ifspec file to add instance_id parameter to give user defined port id --- src/model_generation.py | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src') diff --git a/src/model_generation.py b/src/model_generation.py index 38bec4d..805db82 100755 --- a/src/model_generation.py +++ b/src/model_generation.py @@ -556,6 +556,17 @@ for item in output_port: in_port_table.append(port_table+port_name+description+direction+default_type+allowed_type+vector+vector_bounds+null_allowed) parameter_table=''' + +PARAMETER_TABLE: +Parameter_Name: instance_id +Description: "instance_id" +Data_Type: real +Default_Value: 0 +Limits: - +Vector: no +Vector_Bounds: - +Null_Allowed: yes + PARAMETER_TABLE: Parameter_Name: rise_delay fall_delay Description: "rise delay" "fall delay" -- cgit From fb64fc09a83009deaa37de151b1257f1fa627c72 Mon Sep 17 00:00:00 2001 From: ambikeshwar Date: Thu, 13 Aug 2015 15:26:43 +0530 Subject: added shell script to create sock_port.vhdl library --- src/model_generation.py | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/model_generation.py b/src/model_generation.py index 805db82..676c02d 100755 --- a/src/model_generation.py +++ b/src/model_generation.py @@ -756,7 +756,7 @@ for item in process: testbench.close() -#####################################Creating and writing components in start_server.sh ################################ +##################################### Creating and writing components in start_server.sh ################################ start_server = open('start_server.sh','w') @@ -772,3 +772,26 @@ start_server.write("ghdl -e -Wl,ghdlserver.o "+fname.split('.')[0]+"_tb &&\n") start_server.write("./"+fname.split('.')[0]+"_tb") start_server.close() + +##################################### Creating and writing in sock_pkg_create.sh ######################################## + +sock_pkg_create = open('sock_pkg_create.sh','w') + +sock_pkg_create.write("echo \"#!/bin/bash\n\n") +sock_pkg_create.write("###This file create sock_pkg_create.vhdl file and set the instance id from parameter based on parameter\n\n") +sock_pkg_create.write("library ieee;\n") +sock_pkg_create.write("package sock_pkg is\n") +sock_pkg_create.write("\tfunction sock_pkg_fun return integer;\n") +sock_pkg_create.write("end;\n\n") +sock_pkg_create.write("\tpackage body sock_pkg is\n") +sock_pkg_create.write("\t\tvariable sock_id : integer;\n") +sock_pkg_create.write("\t\t\tbegin\n") +sock_pkg_create.write("\t\t\t\tsock_id := $1;\n") +sock_pkg_create.write("\t\t\t\treturn sock_id;\n") +sock_pkg_create.write("\t\t\tend function;\n") +sock_pkg_create.write("\t\tend package body;\" > sock_pkg.vhdl") + + + + + -- cgit From 1a2466cd700138ed4703de24fd02b7ff6e78b303 Mon Sep 17 00:00:00 2001 From: ambikeshwar Date: Thu, 13 Aug 2015 15:31:33 +0530 Subject: changes in start_server.sh to compile autogenerated vhdl library sock_pkg.vhdl --- src/model_generation.py | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src') diff --git a/src/model_generation.py b/src/model_generation.py index 676c02d..807b4f1 100755 --- a/src/model_generation.py +++ b/src/model_generation.py @@ -766,6 +766,8 @@ start_server.write("#gcc -c ghdlserver.c\n") start_server.write("#ghdl -a Utility_Package.vhdl &&\n") start_server.write("#ghdl -a Vhpi_Package.vhdl &&\n") start_server.write("cd "+home+"/ngspice-26/src/xspice/icm/ghdl/"+fname.split('.')[0]+"/DUTghdl/\n") +start_server.write("./sock_pkg_create.sh &&\n") +start_server.write("ghdl -a sock_pkg.vhdl &&\n") start_server.write("ghdl -a "+fname+" &&\n") start_server.write("ghdl -a "+fname.split('.')[0]+"_tb.vhdl &&\n") start_server.write("ghdl -e -Wl,ghdlserver.o "+fname.split('.')[0]+"_tb &&\n") -- cgit From 7db80ad75fc9b1e2444fdf8626d58f3241e60c1b Mon Sep 17 00:00:00 2001 From: ambikeshwar Date: Thu, 13 Aug 2015 15:41:17 +0530 Subject: content of testbench has been changed in accordance to accomodate flexible client server port --- src/model_generation.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/model_generation.py b/src/model_generation.py index 807b4f1..2c7a050 100755 --- a/src/model_generation.py +++ b/src/model_generation.py @@ -621,6 +621,7 @@ use ieee.numeric_std.all; library work; use work.Vhpi_Foreign.all; use work.Utility_Package.all; +use work.sock_pkg.all; ''' @@ -690,7 +691,7 @@ map.append("\t\t\t);") tb_clk= "clk_s <= not clk_s after 5 us;\n\n" #Adding Process block for Vhpi process_Vhpi=[] -process_Vhpi.append("\tprocess\n\n\t\tbegin\n\n\t\tVhpi_Initialize;\n\t\twait until clk_s = '1';\n\t\twhile true loop\n\t\t\twait until clk_s = '0';\n\t\t\tVhpi_Listen;\n\t\t\twait for 1 us;\n\t\t\tVhpi_Send;\n\t\tend loop;\n\t\twait;\n\tend process;\n\n") +process_Vhpi.append("\tprocess\n\t\tvariable sock_port : integer;\n\t\tbegin\n\t\tsock_port := sock_pkg_fun;\n\t\tVhpi_Initialize(sock_port);\n\t\twait until clk_s = '1';\n\t\twhile true loop\n\t\t\twait until clk_s = '0';\n\t\t\tVhpi_Listen;\n\t\t\twait for 1 us;\n\t\t\tVhpi_Send;\n\t\tend loop;\n\t\twait;\n\tend process;\n\n") #Adding process block process=[] process.append("\tprocess\n\n") -- cgit From 2c277a59a689011c09b1f09f7adaf83f0749858f Mon Sep 17 00:00:00 2001 From: ambikeshwar Date: Thu, 13 Aug 2015 15:47:36 +0530 Subject: Vhpi_Package.vhdl modified for flexible client server port option --- src/ghdlserver/Vhpi_Package.vhdl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/ghdlserver/Vhpi_Package.vhdl b/src/ghdlserver/Vhpi_Package.vhdl index febc00b..0c0baac 100755 --- a/src/ghdlserver/Vhpi_Package.vhdl +++ b/src/ghdlserver/Vhpi_Package.vhdl @@ -8,7 +8,7 @@ package Vhpi_Foreign is ----------------------------------------------------------------------------- -- foreign Vhpi function ----------------------------------------------------------------------------- - procedure Vhpi_Initialize; + procedure Vhpi_Initialize(sock_port : in integer); attribute foreign of Vhpi_Initialize : procedure is "VHPIDIRECT Vhpi_Initialize"; procedure Vhpi_Close; -- close . @@ -36,7 +36,7 @@ package body Vhpi_Foreign is ----------------------------------------------------------------------------- -- subprogram bodies for foreign vhpi routines. will never be called ----------------------------------------------------------------------------- - procedure Vhpi_Initialize is + procedure Vhpi_Initialize(sock_port: in integer) is begin assert false report "fatal: this should never be called" severity failure; end Vhpi_Initialize; -- cgit