vertigo_vhdl 0.8.10 → 0.8.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/vertigo/tb_generator.rb +31 -14
- data/lib/vertigo/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5f66142ff1aa2f02093dbc99c8cd22a78a44ae177d0ecaf41e1cc3289b505e80
|
4
|
+
data.tar.gz: 406108f6e1fc88d54cd96b38708772e7051788b8c9ab9417a15bef96326004e1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9c3f59eea1d1a2ca3ec6c22361bcd5eb54512b95a9b76e60465d6aa2749072d730fc0d79d28cfe0b2d11048f49a29f655d55aabc34cf6f0c8fcbd0c82b3f440c
|
7
|
+
data.tar.gz: a12214d7979e71a31172ce35fa67ac7ca3bbf69c4a3e8730acdeae20c451cb9344b3a2c1d567389db41ffa699a896db6244f8ec3fdd4f9d15600d9caf7ef857e
|
data/lib/vertigo/tb_generator.rb
CHANGED
@@ -13,15 +13,19 @@ module Vertigo
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def generate_from ast
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
16
|
+
begin
|
17
|
+
@ast=ast
|
18
|
+
entity_arch=find_entity_arch()
|
19
|
+
detecting_clk_and_reset(entity_arch)
|
20
|
+
vhdl_tb=gen_code()
|
21
|
+
@tb_name=@entity_name+"_tb"
|
22
|
+
tb_filename=@tb_name+".vhd"
|
23
|
+
File.open(tb_filename,'w'){|f| f.puts vhdl_tb}
|
24
|
+
puts "=> generated testbench : #{tb_filename}" unless options[:mute]
|
25
|
+
return tb_filename
|
26
|
+
rescue Exception => e
|
27
|
+
puts e.backtrace
|
28
|
+
end
|
25
29
|
end
|
26
30
|
|
27
31
|
def line n=80
|
@@ -113,7 +117,9 @@ module Vertigo
|
|
113
117
|
code << line
|
114
118
|
code << comment("Design Under Test")
|
115
119
|
code << line
|
116
|
-
|
120
|
+
str="dut : entity work.#{@entity_name}"
|
121
|
+
str+="(#{@arch_name})" if @arch_name
|
122
|
+
code << str
|
117
123
|
code.indent=2
|
118
124
|
code << "port map ("
|
119
125
|
code.indent=4
|
@@ -164,13 +170,13 @@ module Vertigo
|
|
164
170
|
puts "=> found entity '#{entity.name.str}'" unless options[:mute]
|
165
171
|
@arch=ast.design_units.find{|du| du.is_a? Architecture}
|
166
172
|
if @arch.nil?
|
167
|
-
puts msg="
|
168
|
-
|
173
|
+
puts msg="WARNING : no architecture found"
|
174
|
+
else
|
175
|
+
puts "=> found architecture '#{arch.name.str}'" unless options[:mute]
|
169
176
|
end
|
170
177
|
|
171
|
-
puts "=> found architecture '#{arch.name.str}'" unless options[:mute]
|
172
178
|
@entity_name=@entity.name.str
|
173
|
-
@arch_name=@arch.name.str
|
179
|
+
@arch_name=@arch.name.str if @arch
|
174
180
|
[@entity,@arch]
|
175
181
|
end
|
176
182
|
|
@@ -182,7 +188,18 @@ module Vertigo
|
|
182
188
|
@rst = inputs.sort_by{|input| levenshtein_distance(input.name.str,"reset_n")}.first
|
183
189
|
puts "\t-most probable clk : #{@clk.name.str}" unless options[:mute]
|
184
190
|
puts "\t-most probable reset : #{@rst.name.str}" unless options[:mute]
|
191
|
+
|
185
192
|
@max_length_str=entity.ports.map{|port| port.name.str.size}.max
|
193
|
+
|
194
|
+
print "\t-validate [Y/n] ? "
|
195
|
+
answer=$stdin.gets.chomp
|
196
|
+
if answer=="n"
|
197
|
+
puts "ok, switching to 'clk' and 'reset_n'"
|
198
|
+
@reset_name="reset_n"
|
199
|
+
@clk_name="clk"
|
200
|
+
@excluded=[]
|
201
|
+
return
|
202
|
+
end
|
186
203
|
@excluded=[@clk,@rst]
|
187
204
|
@reset_name=@rst.name.str
|
188
205
|
@clk_name=@clk.name.str
|
data/lib/vertigo/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vertigo_vhdl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jean-Christophe Le Lann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-11-02 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A Ruby handwritten VHDL parser and utilities
|
14
14
|
email: jean-christophe.le_lann@ensta-bretagne.fr
|