## VerilogToImage خلاصه استفاده

### خلاصه بسیار کوتاه:

```python
# 1. نصب و import
from verilog_framework.core import parse_verilog
from verilog_framework.verilogtoimage import VerilogToImagePipeline

# 2. parsing
ast = parse_verilog(your_verilog_code)

# 3. تبدیل به عکس
pipeline = VerilogToImagePipeline()
pipeline.verilog_to_svg(your_verilog_code, "circuit.svg")
```

---

## راه‌های استفاده

### راه 1: Python کد

```python
from verilog_framework.core import parse_verilog

# بخش 1: parsing
code = """
module adder(input a, input b, output sum);
    assign sum = a + b;
endmodule
"""
ast = parse_verilog(code)

# بخش 2: اطلاعات استخراج
print(f"Module: {ast.name}")
print(f"Ports: {len(ast.port_list)}")
for port in ast.port_list:
    print(f"  {port.direction} {port.name}")
```

### راه 2: Command Line

```bash
# پارس و نمایش
python examples/cli.py my_module.v

# تولید SVG
python examples/cli.py my_module.v --svg

# تولید تصویر PNG
python examples/cli.py my_module.v --png

# تولید نمودار AST
python examples/cli.py my_module.v --dot
```

### راه 3: Examples

```bash
# دیدن تمام مثال‌ها
python examples/simple_usage.py
```

---

## لیست فایل‌های اصلی

```
verilog_framework/
├── core/
│   ├── lexer.py          # Tokenizer
│   ├── parser.py         # Parser
│   ├── ast_nodes.py      # AST nodes
│   └── __init__.py       # Helper: parse_verilog()
│
├── visualization/
│   ├── visitor.py        # Visitor pattern
│   └── visualizer.py     # Graphviz
│
├── verilogtoimage/
│   ├── logger.py         # Logging
│   ├── converters.py     # Yosys, netlistsvg, CairoSVG
│   └── pipeline.py       # Orchestrator
│
└── __init__.py

examples/
├── cli.py                # Command line interface
├── simple_usage.py       # 5 مثال عملی
└── test_module.v         # فایل تست

tests/
├── test_*.py             # Unit tests (23 tests)
└── run_tests.py          # Test runner
```

---

## خصوصیات

| Feature | Location | Status |
|---------|----------|--------|
| **Parsing** | core/ | ✓ Done |
| **AST Visualization** | visualization/ | ✓ Done |
| **Circuit Diagrams** | verilogtoimage/ | ✓ Done |
| **Logging** | verilogtoimage/logger.py | ✓ Done |
| **CLI** | examples/cli.py | ✓ Done |
| **Tests** | tests/ | ✓ 23/23 Passing |

---

## نیاز به چیست

### Parsing (ضروری نیست)
- فقط Python standard library

### AST Visualization
```bash
pip install graphviz
```

### Circuit Diagrams
```bash
# Windows: نیاز WSL Ubuntu
wsl -d Ubuntu bash -c "sudo apt-get install yosys npm && npm install -g netlistsvg"

# یا Windows without WSL:
# نصب Yosys و netlistsvg به طور جداگانه
```

### PNG Output
```bash
pip install cairosvg
```

---

## سوالات رایج

**Q: چطور Verilog parse کنم؟**  
A: 
```python
from verilog_framework.core import parse_verilog
ast = parse_verilog(your_code)
```

**Q: چطور به عکس تبدیل کنم؟**  
A:
```python
from verilog_framework.verilogtoimage import VerilogToImagePipeline
pipeline = VerilogToImagePipeline()
pipeline.verilog_to_svg(code, "output.svg")
```

**Q: چطور از CLI استفاده کنم؟**  
A:
```bash
python examples/cli.py module.v --svg
```

**Q: کدام Verilog constructs پشتیبانی می‌شود؟**  
A: 
- Modules, Ports (input/output)
- Assignments, Always blocks
- Basic expressions
- درخواست: ببینید `verilog_framework/core/parser.py`

---

## جستجو و اطلاعات بیشتر

- **Quick Start**: QUICKSTART.md
- **راهنمای آسان**: EASY_START.md  
- **مثال‌ها**: examples/simple_usage.py
- **مستندات**: README.md
- **تست‌ها**: tests/run_tests.py

---

## خلاصه فوری

```
Verilog -> Parse -> AST -> Visualize/Convert -> Output
  Code      ✓     ✓      ✓                ✓
```

هر ۴ مرحله **کامل** و **تست شده** است!

