From 58eaaa824abdd0b755a045be6a6f4185a6e39940 Mon Sep 17 00:00:00 2001 From: light-ly Date: Mon, 2 Dec 2024 23:11:07 +0800 Subject: [PATCH] add arch name to module --- Cargo.lock | 1 - src/core/hdlparam.rs | 2 ++ src/core/vhdl_parser.rs | 4 ++-- src/request/fast.rs | 1 + 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4542a3c..d6cd34b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1416,7 +1416,6 @@ dependencies = [ name = "sv-parser" version = "0.13.3" dependencies = [ - "log", "nom", "nom-greedyerror", "sv-parser-error", diff --git a/src/core/hdlparam.rs b/src/core/hdlparam.rs index b9405d6..ea2e64f 100644 --- a/src/core/hdlparam.rs +++ b/src/core/hdlparam.rs @@ -295,6 +295,7 @@ impl Instance { #[derive(Debug, Serialize, Deserialize, Clone)] pub struct Module { pub name: String, + pub arch_name: String, pub params: Vec, pub ports: Vec, pub instances: Vec, @@ -363,6 +364,7 @@ impl FastHdlparam { pub fn new_module(&mut self, name: &str, range: Range) { let module = Module { name: name.to_string(), + arch_name: "".to_string(), params: Vec::new(), ports: Vec::new(), instances: Vec::new(), diff --git a/src/core/vhdl_parser.rs b/src/core/vhdl_parser.rs index 925f6c5..c0eaab1 100644 --- a/src/core/vhdl_parser.rs +++ b/src/core/vhdl_parser.rs @@ -115,6 +115,7 @@ fn parse_tokens(tokens: Vec) -> Vec { // 创建一个空的 module 并标记上 last_module_name let module = Module { name: entity_name.to_string(), + arch_name: "".to_string(), params: Vec::new(), ports: Vec::new(), instances: Vec::new(), @@ -195,8 +196,7 @@ fn parse_tokens(tokens: Vec) -> Vec { } else { let module = modules.iter_mut().find(|module| module.name == name).unwrap(); let arch_name = get_value(&tokens[i+1]); - let entity_name = module.name.clone(); - module.name = entity_name + "(" + arch_name.as_str() + ")"; + module.arch_name = arch_name; } } } diff --git a/src/request/fast.rs b/src/request/fast.rs index 8465294..4e57268 100644 --- a/src/request/fast.rs +++ b/src/request/fast.rs @@ -232,6 +232,7 @@ fn do_vhdl_fast( let fake_content = vec![ core::hdlparam::Module { name: ip_name.to_string(), + arch_name: "".to_string(), params: vec![], ports: vec![], instances: vec![],