Skip to content
Snippets Groups Projects
Commit cae5478e authored by Aurélie saulquin's avatar Aurélie saulquin
Browse files

change template

parent 77bbfb1a
Branches
No related tags found
1 merge request!3Dev
...@@ -127,7 +127,7 @@ architecture Behavioral of ShiftLif_Parallel is ...@@ -127,7 +127,7 @@ architecture Behavioral of ShiftLif_Parallel is
end component; end component;
-- type definition -- type definition
type transmission_state_t is (idle, voltage_update, check_arbitration, request, accept, wait_arbitration); type transmission_state_t is (idle, voltage_update, check_arbitration, request, accept, wait_arbitration, arbitration_finish);
type reception_state_t is (idle, request, get_data); type reception_state_t is (idle, request, get_data);
-- ram signals -- ram signals
...@@ -249,9 +249,8 @@ begin ...@@ -249,9 +249,8 @@ begin
when check_arbitration => when check_arbitration =>
if spikes = no_spike then if spikes = no_spike then
transmission_state <= idle; transmission_state <= arbitration_finish;
o_emu_busy <= '0'; o_emu_busy <= '0';
tr_fsm_en := '0';
else else
transmission_state <= request; transmission_state <= request;
arb_spikes <= spikes; arb_spikes <= spikes;
...@@ -278,12 +277,15 @@ begin ...@@ -278,12 +277,15 @@ begin
when wait_arbitration => when wait_arbitration =>
start_arb <= '0'; start_arb <= '0';
if arb_busy = '0' then if arb_busy = '0' then
transmission_state <= idle; transmission_state <= arbitration_finish;
o_emu_busy <= '0';
tr_fsm_en := '0';
else else
transmission_state <= wait_arbitration; transmission_state <= wait_arbitration;
end if; end if;
when arbitration_finish =>
transmission_state <= idle;
o_emu_busy <= '0';
tr_fsm_en := '0';
end case; end case;
end if; end if;
end if; end if;
...@@ -337,3 +339,4 @@ begin ...@@ -337,3 +339,4 @@ begin
end generate neuron_generation; end generate neuron_generation;
end Behavioral; end Behavioral;
...@@ -160,8 +160,9 @@ class XStep_Driver(ModNEF_Driver): ...@@ -160,8 +160,9 @@ class XStep_Driver(ModNEF_Driver):
step_send += 1 step_send += 1
if step == len(sample_aer)-1: if step == len(sample_aer)-1:
print(len(data))
emulation_result = self.rust_driver.data_transmission(data, reset_membrane) emulation_result = self.rust_driver.data_transmission(data, reset_membrane)
print("hi")
res_step = self._unpack_data(emulation_result) res_step = self._unpack_data(emulation_result)
for rs in res_step: for rs in res_step:
for aer in rs: for aer in rs:
......
import os
import tonic
from torch.utils.data import DataLoader
"""DataSet Definition"""
dataset_path = f"{os.environ['HOME']}/datasets"
# data set definition, change to your dataset
sensor_size = tonic.datasets.NMNIST.sensor_size
frame_transform = tonic.transforms.ToFrame(sensor_size=sensor_size, n_time_bins=5)
train_set = tonic.datasets.NMNIST(save_to=dataset_path, train=True, transform=frame_transform)
test_set = tonic.datasets.NMNIST(save_to=dataset_path, train=False, transform=frame_transform)
# batch loader
batch_size = 64
trainLoader = DataLoader(train_set, batch_size=batch_size, shuffle=True, drop_last = True, collate_fn = tonic.collation.PadTensors(batch_first=True))
testLoader = DataLoader(test_set, batch_size=batch_size, shuffle=True, drop_last = True, collate_fn = tonic.collation.PadTensors(batch_first=True))
validationLoader = None
\ No newline at end of file
...@@ -7,6 +7,7 @@ import torch ...@@ -7,6 +7,7 @@ import torch
from run_lib import * from run_lib import *
import sys import sys
from model import MyModel from model import MyModel
from dataset import *
if __name__ == "__main__": if __name__ == "__main__":
...@@ -53,19 +54,6 @@ if __name__ == "__main__": ...@@ -53,19 +54,6 @@ if __name__ == "__main__":
conf_matrix_file = "confusion_matrix.png" conf_matrix_file = "confusion_matrix.png"
conf_matrix_classes = [str(i) for i in range(10)] conf_matrix_classes = [str(i) for i in range(10)]
"""DataSet Definition"""
dataset_path = f"{os.environ['HOME']}/datasets"
# data set definition, change to your dataset
sensor_size = tonic.datasets.NMNIST.sensor_size
frame_transform = tonic.transforms.ToFrame(sensor_size=sensor_size, n_time_bins=10)
test_set = tonic.datasets.NMNIST(save_to=dataset_path, train=False, transform=frame_transform)
# batch loader
batch_size = 64
testLoader = DataLoader(test_set, batch_size=batch_size, shuffle=True, drop_last = True, collate_fn = tonic.collation.PadTensors(batch_first=True))
if kind == "eval": if kind == "eval":
acc, y_pred, y_true = evaluation( acc, y_pred, y_true = evaluation(
...@@ -99,7 +87,7 @@ if __name__ == "__main__": ...@@ -99,7 +87,7 @@ if __name__ == "__main__":
exit(-1) exit(-1)
if save_conf_matrix: if save_conf_matrix:
confusion_matrix( conf_matrix(
y_true=y_true, y_true=y_true,
y_pred=y_pred, y_pred=y_pred,
file_name=conf_matrix_file, file_name=conf_matrix_file,
......
...@@ -6,6 +6,7 @@ from snntorch.surrogate import fast_sigmoid ...@@ -6,6 +6,7 @@ from snntorch.surrogate import fast_sigmoid
from run_lib import * from run_lib import *
import torch import torch
from model import MyModel from model import MyModel
from dataset import *
if __name__ == "__main__": if __name__ == "__main__":
...@@ -32,23 +33,6 @@ if __name__ == "__main__": ...@@ -32,23 +33,6 @@ if __name__ == "__main__":
save_history = False save_history = False
output_path = "." output_path = "."
"""DataSet Definition"""
dataset_path = f"{os.environ['HOME']}/datasets"
# data set definition, change to your dataset
sensor_size = tonic.datasets.NMNIST.sensor_size
frame_transform = tonic.transforms.ToFrame(sensor_size=sensor_size, n_time_bins=5)
train_set = tonic.datasets.NMNIST(save_to=dataset_path, train=True, transform=frame_transform)
test_set = tonic.datasets.NMNIST(save_to=dataset_path, train=False, transform=frame_transform)
# batch loader
batch_size = 64
trainLoader = DataLoader(train_set, batch_size=batch_size, shuffle=True, drop_last = True, collate_fn = tonic.collation.PadTensors(batch_first=True))
testLoader = DataLoader(test_set, batch_size=batch_size, shuffle=True, drop_last = True, collate_fn = tonic.collation.PadTensors(batch_first=True))
validationLoader = None
train( train(
model=model, model=model,
trainLoader=trainLoader, trainLoader=trainLoader,
......
...@@ -6,6 +6,7 @@ from snntorch.surrogate import fast_sigmoid ...@@ -6,6 +6,7 @@ from snntorch.surrogate import fast_sigmoid
from run_lib import * from run_lib import *
import torch import torch
from model import MyModel from model import MyModel
from dataset import *
if __name__ == "__main__": if __name__ == "__main__":
...@@ -33,21 +34,7 @@ if __name__ == "__main__": ...@@ -33,21 +34,7 @@ if __name__ == "__main__":
"""VHDL file definition""" """VHDL file definition"""
output_path = "." output_path = "."
file_name = "template_vhdl_model.vhd" file_name = "template_vhdl_model.vhd"
driver_config_path = "driver_config" driver_config_path = "driver_config.yml"
"""DataSet Definition"""
dataset_path = f"{os.environ['HOME']}/datasets"
# data set definition, change to your dataset
sensor_size = tonic.datasets.NMNIST.sensor_size
frame_transform = tonic.transforms.ToFrame(sensor_size=sensor_size, n_time_bins=10)
test_set = tonic.datasets.NMNIST(save_to=dataset_path, train=False, transform=frame_transform)
# batch loader
batch_size = 64
testLoader = DataLoader(test_set, batch_size=batch_size, shuffle=True, drop_last = True, collate_fn = tonic.collation.PadTensors(batch_first=True))
acc, y_pred, y_true = hardware_estimation( acc, y_pred, y_true = hardware_estimation(
model=model, model=model,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment