add arch name to module

This commit is contained in:
light-ly 2024-12-02 23:11:07 +08:00
parent 509fd1a506
commit 58eaaa824a
4 changed files with 5 additions and 3 deletions

1
Cargo.lock generated
View File

@ -1416,7 +1416,6 @@ dependencies = [
name = "sv-parser" name = "sv-parser"
version = "0.13.3" version = "0.13.3"
dependencies = [ dependencies = [
"log",
"nom", "nom",
"nom-greedyerror", "nom-greedyerror",
"sv-parser-error", "sv-parser-error",

View File

@ -295,6 +295,7 @@ impl Instance {
#[derive(Debug, Serialize, Deserialize, Clone)] #[derive(Debug, Serialize, Deserialize, Clone)]
pub struct Module { pub struct Module {
pub name: String, pub name: String,
pub arch_name: String,
pub params: Vec<Parameter>, pub params: Vec<Parameter>,
pub ports: Vec<Port>, pub ports: Vec<Port>,
pub instances: Vec<Instance>, pub instances: Vec<Instance>,
@ -363,6 +364,7 @@ impl FastHdlparam {
pub fn new_module(&mut self, name: &str, range: Range) { pub fn new_module(&mut self, name: &str, range: Range) {
let module = Module { let module = Module {
name: name.to_string(), name: name.to_string(),
arch_name: "".to_string(),
params: Vec::new(), params: Vec::new(),
ports: Vec::new(), ports: Vec::new(),
instances: Vec::new(), instances: Vec::new(),

View File

@ -115,6 +115,7 @@ fn parse_tokens(tokens: Vec<Token>) -> Vec<Module> {
// 创建一个空的 module 并标记上 last_module_name // 创建一个空的 module 并标记上 last_module_name
let module = Module { let module = Module {
name: entity_name.to_string(), name: entity_name.to_string(),
arch_name: "".to_string(),
params: Vec::new(), params: Vec::new(),
ports: Vec::new(), ports: Vec::new(),
instances: Vec::new(), instances: Vec::new(),
@ -195,8 +196,7 @@ fn parse_tokens(tokens: Vec<Token>) -> Vec<Module> {
} else { } else {
let module = modules.iter_mut().find(|module| module.name == name).unwrap(); let module = modules.iter_mut().find(|module| module.name == name).unwrap();
let arch_name = get_value(&tokens[i+1]); let arch_name = get_value(&tokens[i+1]);
let entity_name = module.name.clone(); module.arch_name = arch_name;
module.name = entity_name + "(" + arch_name.as_str() + ")";
} }
} }
} }

View File

@ -232,6 +232,7 @@ fn do_vhdl_fast(
let fake_content = vec![ let fake_content = vec![
core::hdlparam::Module { core::hdlparam::Module {
name: ip_name.to_string(), name: ip_name.to_string(),
arch_name: "".to_string(),
params: vec![], params: vec![],
ports: vec![], ports: vec![],
instances: vec![], instances: vec![],