gupl 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/sig/gupl.rbs ADDED
@@ -0,0 +1,4 @@
1
+ module Gupl
2
+ VERSION: String
3
+ # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
+ end
@@ -0,0 +1,57 @@
1
+ library ieee;
2
+ use ieee.std_logic_1164.all;
3
+ use ieee.numeric_std.all;
4
+
5
+ entity simple_dualportram is
6
+
7
+ generic (
8
+ DEPTH : integer := 10;
9
+ WIDTH : integer := 32;
10
+ WORDS : integer := 1024
11
+ );
12
+
13
+ port (
14
+ clk : in std_logic;
15
+ reset : in std_logic;
16
+ we : in std_logic_vector(0 downto 0);
17
+ raddr : in std_logic_vector(31 downto 0);
18
+ waddr : in std_logic_vector(31 downto 0);
19
+ dout : out std_logic_vector(WIDTH-1 downto 0);
20
+ din : in std_logic_vector(WIDTH-1 downto 0);
21
+ length : out std_logic_vector(31 downto 0)
22
+ );
23
+
24
+ end simple_dualportram;
25
+
26
+ architecture RTL of simple_dualportram is
27
+
28
+ type ram_type is array (WORDS-1 downto 0) of std_logic_vector (WIDTH-1 downto 0);
29
+ signal RAM: ram_type := (others => (others => '0'));
30
+
31
+ attribute ram_style : string;
32
+ attribute ram_style of RAM : signal is "block";
33
+
34
+ signal q : std_logic_vector(WIDTH-1 downto 0) := (others => '0');
35
+
36
+ begin -- RTL
37
+
38
+ length <= std_logic_vector(to_signed(WORDS, length'length));
39
+ dout <= q;
40
+
41
+ process (clk)
42
+ begin -- process
43
+ if rising_edge(clk) then
44
+ if we(0) = '1' then
45
+ RAM(to_integer(unsigned(waddr(DEPTH-1 downto 0)))) <= din;
46
+ end if;
47
+ end if;
48
+ end process;
49
+
50
+ process (clk)
51
+ begin -- process
52
+ if rising_edge(clk) then
53
+ q <= RAM(to_integer(unsigned(raddr(DEPTH-1 downto 0))));
54
+ end if;
55
+ end process;
56
+
57
+ end RTL;
metadata ADDED
@@ -0,0 +1,64 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gupl
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Takefumi MIYOSHI
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2022-06-05 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: gupl makes UPL modules, which is a VHDL generator.
14
+ email:
15
+ - miyo@wasamon.net
16
+ executables:
17
+ - gupl
18
+ extensions: []
19
+ extra_rdoc_files: []
20
+ files:
21
+ - CHANGELOG.md
22
+ - CODE_OF_CONDUCT.md
23
+ - Gemfile
24
+ - LICENSE
25
+ - README.md
26
+ - Rakefile
27
+ - example/command_parser.gupl
28
+ - example/command_parser_tb.vhd
29
+ - example/sendrecv.gupl
30
+ - example/sendrecv_tb.vhd
31
+ - example/udpled.gupl
32
+ - exe/gupl
33
+ - gupl.gemspec
34
+ - lib/gupl.rb
35
+ - lib/gupl/version.rb
36
+ - sig/gupl.rbs
37
+ - vhdl_lib/simple_dualportram.vhd
38
+ homepage: https://github.com/e-trees/gupl
39
+ licenses: []
40
+ metadata:
41
+ allowed_push_host: https://rubygems.org
42
+ homepage_uri: https://github.com/e-trees/gupl
43
+ source_code_uri: https://github.com/e-trees/gupl
44
+ changelog_uri: https://github.com/e-trees/gupl/CHANGELOG.md
45
+ post_install_message:
46
+ rdoc_options: []
47
+ require_paths:
48
+ - lib
49
+ required_ruby_version: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 2.6.0
54
+ required_rubygems_version: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ version: '0'
59
+ requirements: []
60
+ rubygems_version: 3.1.2
61
+ signing_key:
62
+ specification_version: 4
63
+ summary: gupl makes UPL module.
64
+ test_files: []